KR102155659B1 - 멀티-모드 장치 및 그것의 동작 방법 - Google Patents

멀티-모드 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102155659B1
KR102155659B1 KR1020170058870A KR20170058870A KR102155659B1 KR 102155659 B1 KR102155659 B1 KR 102155659B1 KR 1020170058870 A KR1020170058870 A KR 1020170058870A KR 20170058870 A KR20170058870 A KR 20170058870A KR 102155659 B1 KR102155659 B1 KR 102155659B1
Authority
KR
South Korea
Prior art keywords
chassis
type
storage device
lanes
connector
Prior art date
Application number
KR1020170058870A
Other languages
English (en)
Other versions
KR20180012191A (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
Priority claimed from US15/256,495 external-priority patent/US20180032471A1/en
Priority claimed from US15/345,507 external-priority patent/US10346041B2/en
Priority claimed from US15/345,509 external-priority patent/US11461258B2/en
Priority claimed from US15/403,088 external-priority patent/US10210123B2/en
Priority claimed from US15/411,962 external-priority patent/US10372659B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180012191A publication Critical patent/KR20180012191A/ko
Priority to KR1020200114422A priority Critical patent/KR102262541B1/ko
Application granted granted Critical
Publication of KR102155659B1 publication Critical patent/KR102155659B1/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
    • 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/0028Serial attached SCSI [SAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명의 실시 예에 따른 장치는 커넥터, 섀시(chassis) 타입(type) 회로, 그리고 모드 구성 회로를 포함할 수 있다. 커넥터는 상기 장치를 섀시와 연결할 수 있다. 섀시 타입 회로는 상기 장치를 포함하는 상기 섀시의 타입(type)을 판단할 수 있다. 모드 구성 회로는 상기 섀시의 상기 타입에 응답하여 제 1 모드 또는 제 2 모드를 사용하도록 상기 장치를 구성할 수 있다.

Description

멀티-모드 장치 및 그것의 동작 방법{A MULTI-MODE DEVICE AND AN OPERATING METHOD THEREOF}
본 발명은 스토리지 장치에 관한 것으로, 좀 더 상세하게는 멀티-모드 장치 및 그것의 동작 방법에 관한 것이다.
종래의 섀시(chassis)는 다양한 다른 모델들로 제공된다. 예를 들어, 몇몇 섀시는 장치들과 통신하기 위해 NVMe(Non-Volatile Memory express)를 이용한다. 반면에, 다른 섀시는 장치들과 통신하기 위해 NVMeoF(NVMe over Fabrics)를 이용한다. 섀시의 다양한 모델들은 이러한 모델들과 호환되도록 디자인된 다양한 장치들의 모델들을 요구할 수 있다. 그 결과, 장치의 제조사들은 장치들의 다양한 모델들을 제공해야 한다. 게다가, 이러한 섀시들의 다양한 모델들을 이용하는 데이터 센터들은 장치가 실패하는 경우를 대비하여 다양한 장치들의 스페어 부품들을 보관해야만 한다. 이는, 그렇지 않은 경우에 데이터 센터들이 저장하려고 하는 양보다 더 많은 양의 스페어 부품들을 데이터 센터들이 보관해야 한다는 것을 의미한다.
제조사들에 의해 생산되고 데이터 센터들에 의해 저장되는 장치 타입들의 수를 줄이기 위한 방법이 여전히 요구된다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명은 멀티-모드 장치 및 그것의 동작 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 장치는 커넥터, 섀시(chassis) 타입(type) 회로, 그리고 모드 구성 회로를 포함할 수 있다. 커넥터는 장치를 섀시와 연결할 수 있다. 섀시 타입 회로는 장치를 포함하는 섀시의 타입(type)을 판단할 수 있다. 모드 구성 회로는 섀시의 타입에 응답하여 제 1 모드 또는 제 2 모드를 사용하도록 장치를 구성할 수 있다.
본 발명의 다른 실시 예에 따른 장치(device)의 동작 방법은, 장치가 설치된 섀시의 타입을 판단하는 단계, 그리고 섀시의 타입에 따라, 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 장치를 구성하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 물품(article)은 논 트랜지토리(Non-Transitory) 명령들을 저장하는 유형의 스토리지 매체(tangible storage medium)를 포함할 수 있다. 논 트랜지토리 명령들은 머신에 의해 실행될 때: 장치가 설치된 섀시의 타입을 판단하는 단계, 그리고 섀시의 타입에 따라, 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 장치를 구성하는 단계를 수행할 수 있다.
본 발명의 멀티-모드 장치 및 그것의 동작 방법은, 복수의 제품들에서 사용될 수 있는 단일의 공통 장치 및 공통 시스템의 플랫폼을 제공할 수 있다. 따라서, 다양한 모델의 장치들의 생산 및 저장 비용을 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 장치를 포함하는 머신을 보여준다.
도 2는 도 1의 머신을 추가적으로 상세히 보여준다.
도 3 및 도 4는 NVMe(Non-Volatile Memory express) 또는 NVMeoF(Non-Volatile Memory express over Fabrics) 모드에서 동작하는 도 1의 장치를 보여준다.
도 5는 HA(High Availability) 섀시 내에서 두 개의 호스트와 통신하는 도 1의 장치를 보여준다.
도 6은 본 발명의 실시 예에 따른 도 1의 장치가 셀프-구성(self-configure)하기 위한 절차를 예시적으로 보여주는 순서도이다.
도 7a 및 도 7b는 본 발명의 실시 예에 따른 NVMe 또는 NVMeoF 프로토콜, 그리고 HA 섀시 또는 non-HA 섀시에 대해 도 1의 장치가 셀프-구성하기 위한 절차를 예시적으로 보여주는 순서도이다.
이하 본 발명의 개념의 구체적인 실시 예에 대한 참조가 상세하게 제공될 것이다. 본 발명의 개념의 구체적인 실시 예에 대한 예들은 첨부된 도면에 도시될 것이다. 후속하는 상세한 설명에서, 본 발명의 개념에 대한 완전한 이해가 가능해지도록 수많은 구체적인 사항들이 제공될 것이다. 그러나, 당업자는 이러한 상세한 설명이 없이도 본 발명의 개념을 실시할 수 있다는 것을 이해하여야 한다. 다른 예에서, 공지 또는 공용의 방법들, 단계들, 구성들, 회로들, 및 네트워크들은 본 발명의 실시 예의 양태를 불필요하게 모호하게 하지 않기 위해 상세하게 기재되지 않았다.
본 명세서에서 제 1 및 제 2 등이 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 이러한 구성 요소는 이러한 용어에 의해 한정되지 않는 것으로 이해 될 것이다. 상기 용어들은 하나의 구성 요소를 다른 것과 구별하기 위해 사용된다. 예를 들어, 제 1 논리 단계는 제 2 논리 단계로 명명될 수 있으며, 이와 유사하게 본 발명의 개념의 범위를 벗어나지 않은 상태에서, 제 2 논리 스테이지는 제 1 논리 스테이지로 명명될 수 있다.
본 발명의 개념의 발명의 설명에 사용된 용어들은 특정한 실시 예들을 기술하기 위한 목적으로만 사용되는 것이며, 본 발명의 개념을 한정하는 의도로는 사용되지 않는다. 문맥상 명백히 다르게 지시하지 않는 한 단수 형태는 본 발명의 개념의 설명 및 부가된 청구항에 사용될 때, 복수의 형태를 포함하는 의도로 사용된 것으로 이해되어야 한다. 또한, 본 명세서에 사용된 “및/또는” 용어는 하나 또는 그 이상의 관련된 나열된 사항의 모든 가능한 조합을 지시하거나 포함하는 것으로 이해되어야 한다. “포함하는” 용어가 본 명세서에 사용되는 경우, 기술된 특징, 숫자, 단계, 동작, 구성, 및/또는 부품들의 존재를 명기하는 것이며, 이들의 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성, 부품, 및/또는 그룹의 존재 또는 부가를 배제하지 않는 것으로 더 이해되어야 한다. 구성 및 특징의 도시는 일정한 비례로 그려진 것은 아니며, 일부 구성 및 특징은 확대/축소하여 그려질 수도 있다.
NVMeoF 장치 공급자들(suppliers)이 NVMe 섀시와 NVMeoF 섀시와 같이 복수의 제품들에서 사용될 수 있는 단일의 공통 장치를 제공하는 것은 바람직하다. 게다가, 최소의 변화로 non-HA(또는, 싱글 패스(single path) I/O(Input/Output)) 모드와 HA(또는, 멀티-패스(multi-path) I/O) 모드의 NVMe 장치들과 NVMeoF 장치들을 지원할 수 있는 공통의 시스템 플랫폼을 갖는 것은 바람직하다.
멀티-모드 NVMeoF 장치는 알려진 위치로부터 정보를 찾아 NVMe 또는 NVMeoF를 지원할 수 있다. 멀티-모드 장치가 NVMe 섀시 내에 설치되거나 섀시 타입이 결정되지 않으면, PCIe(Peripheral Component Interconnect express)의 x4 레인(lane)들은 데이터와 컨트롤 통신 모두에 대해 사용될 수 있다. 장치는 PCIe 엔진에 의해 구동되어, 예를 들어 U.2 커넥터를 통한 통신을 가능하게 한다. 이러한 경우, 장치는 이더넷(ethernet) 엔진(들)을 비활성화할 것이다. 그리고, 모든 NVMe 프로토콜들과 기능들은 지원되거나 활성화된다.
멀티-모드 장치가 NVMeoF 섀시 내에 설치되면, PCIe 레인들 중 두 개는 컨트롤 통신을 위해 사용될 수 있다. 장치의 디자인에 따라, 데이터 통신을 지원하는 이더넷 포트들은 다른 가능한 PCIe 레인들 또는 SAS(Serial Attached SCSI(Small computer system interface)) 핀들을 사용할 수 있다.
본 발명의 실시 예들은 멀티-모드 장치들이 건강 상태, FRU(Field Replaceable Unit) 정보, 센서 정보, 그리고 디스커버리 서비스들을 BMC(Baseboard Management Controller) 또는 로컬 호스트 프로세서로 푸쉬(push)하도록 활성화한다. 멀티-모드 장치들은 또한 NVMeoF 장치 펌웨어 업그레이드들을 다운로드할 수 있다.
멀티-모드 장치가 두 개(또는, 잠재적으로 더 많은)의 호스트들과의 데이터 통신 및 컨트롤 통신을 지원해야 함에도 불구하고, HA 멀티 패스 I/O 지원이 역시 가능하다. 이는 더 많은 통신 패스들(예를 들어, 추가적인 SAS 핀들을 통한 추가적인 이더넷 포트들)의 할당이나 가능한 통신 패스들의 분할(예를 들어, 다른 목적들에 대한 다른 PCIe 레인들의 할당)을 요구할 수 있다.
본 발명의 실시 예들은 다양한 디자인들을 지원할 수 있다. 몇몇 디자인들에서, 공통의 멀티-모드 장치는 두 개의 별개의 모드들(NVMe와 NVMeoF)을 지원할 수 있다. 게다가, 몇몇의 디자인들에서, NVMe 모드에서 멀티-모드 장치는 종래의 NVMe 장치처럼 동작할 수 있다. 하나의 디자인에서, 멀티-모드 장치는 컨트롤 통신에 대해 일부 PCIe 레인들을 사용할 수 있고, 이더넷 포트들에 대해 일부 PCIe 레인들을 사용할 수 있다. 다른 디자인에서, 멀티-모드 장치는 컨트롤 통신에 대해 일부 PCIe 레인들을 사용할 수 있고, 이더넷 포트들에 대해 SAS 핀들을 사용할 수 있다. 몇몇 디자인들에서, 종래의 PCIe 소프트웨어 드라이버들은 PCIe 통신을 관리하기 위해 사용될 수 있다.
도 1은 본 발명의 실시 예에 따른 장치를 포함하는 섀시를 보여준다. 도 1에서, 섀시(chassis, 105)가 도시되었다. 어떠한 제한 없이, 섀시(105)는 데스크탑(desktop) 또는 랩탑(laptop) 컴퓨터, 서버(예를 들어, 독립 실행 형(standalone) 서버 또는 랙(rack) 서버), 또는 본 발명의 실시 예로부터의 이점을 가질 수 있는 어떠한 다른 장치도 포함하는 어떠한 바람직한 섀시도 될 수 있다. 또한, 섀시(105)는 특화된(specialized) 휴대용 컴퓨팅 장치들, 태블릿(tablet) 컴퓨터들, 스마트 폰들, 그리고 다른 컴퓨팅 장치들을 포함할 수 있다. 그리고, 기술된 본 발명의 실시 예들이 eSSD(ethernet Solid State Drive)들과 같은 스토리지 장치들을 지칭하지만, 본 발명의 실시 예들은 데이터 플레인들과 컨트롤 플레인들을 분리함으로써 얻어질 수 있는 이점을 갖는 어떠한 형태의 장치에도 적용될 수 있다.
섀시(105)의 특정 형태에도 불구하고, 섀시(105)는 프로세서(110), 메모리(115), EEPROM(Electrically Erasable Programmable Read-Only Memory, 120), 그리고 스토리지 장치(125)를 포함할 수 있다. 프로세서(110)는 어떠한 형태의 프로세서(예를 들어, Intel Xeon, Celeron, Itanium, Atom 프로세서, AMD Opteron 프로세서, ARM 프로세서 등)도 될 수 있다. 도 1이 단일 프로세서를 도시하고 있지만, 섀시(105)는 어떠한 수의 프로세서도 포함할 수 있다. 메모리(115)는 어떠한 형태의 메모리(예를 들어, 플래시 메모리, SRAM(Static Random Access Memory), PRAM(Persistent Random Access Memory), FRAM(Ferroelectric Random Access Memory), 또는 MRAM(Magnetoresistive Random Access Memory)와 같은 NVRAM(Non-Volatile Random Access Memory) 등)도 될 수 있다. 다만, 일반적으로, 메모리(115)는 DRAM일 수 있다. 또한, 메모리(115)는 다양한 메모리 타입들의 어떠한 바람직한 조합도 될 수 있다.
EEPROM(120)은 VPD(Vital, Product Data, 130)를 저장할 수 있다. VPD(130)는 스토리지 장치(125)가 스스로를 구성하기 위해 사용될 수 있는 데이터이다. 예를 들어, VPD(130)는 섀시(105)에 관한 정보 또는 스토리지 장치(125)와의 통신을 위해 사용될 전송 프로토콜에 관한 정보를 저장할 수 있다. 스토리지 장치(125)와의 통신에 사용될 전송 프로토콜들은 예컨대, 몇 개의 예를 들자면, 이더넷(Ethernet), Fibre Channel, InfiniBand 또는 NVMe를 포함할 수 있다. VPD(130)는 또한 사용되는 전송 서브 프로토콜들에 관한 정보를 포함할 수 있다. 예를 들어, 만일 VPD(130)가 이더넷 전송 프로토콜이 사용될 것으로 지정하면, VPD(130)는 다른 가능성 있는 것들 중에서 RoCE(Remote Direct Memory Access (RDMA) over Converged Ethernet) 또는 iWarp 중 어느 것이 사용될 지를 저장할 수 있다.
도 1은 VPD(130)가 EEPROM(120)에 저장된 것을 보여주고 있으나, 본 발명의 실시 예들은 임의의 다른 대체 저장 매체들을 사용하는 것을 지원할 수 있다. 예를 들어, EEPROM(120)은 몇 가지 예로, EPROM(Erasable Programmable Read Only Memory) 또는 플래시 메모리로 대체될 수 있다.
스토리지 장치(125)는 어떠한 다양한 스토리지 장치도 될 수 있다. 이러한 장치들의 예는 SSD(Solid State Drive)들을 포함할 수 있다. 다만, 하드 디스크 드라이버(hard disk drive)들 또는 다른 장기(long-term) 스토리지 장치들과 같은 다른 스토리지 형태들 또한 가능하다. 게다가, 메모리(115)와 스토리지 장치(125)는 조합될 수 있다. 즉, 본 발명의 실시 예들은 단기(short-term) 스토리지와 장기 스토리지의 개념들 사이에서 구분하지 않을 수 있다. 다만, 본 발명의 실시 예들은 둘 모두를 단일 폼 펙터(form factor) 내에서 관리할 수 있다. 또한, 스토리지 장치(125)는 본 발명의 실시 예들로부터 얻을 수 이점을 가질 수 있는 어떠한 장치에도 일반화될 수 있다. 스토리지 장치(125)의 사용은 단지 기술된 목적들을 위해 단순화된 것이다.
도 2는 도 1의 섀시를 추가적으로 상세히 보여준다. 도 2를 참조하면, 일반적으로 섀시(105)는 하나 이상의 프로세서들(110)을 포함한다. 프로세서들(110)은 컨트롤러(205) 및 클록(210)을 포함하며, 섀시(105)의 부품들의 동작들을 조정하기 위해 사용된다. 프로세서들(110)은 예컨대 RAM(Random Access Memory), ROM(Read-Only Memory), 또는 다른 상태 보존 매체를 포함하는 메모리(115)와 연결될 수 있다. 또한, 프로세서들(110)은 스토리지 장치들(125) 및 네트워크 커넥터(215)(예컨대, 이더넷 커넥터 또는 무선 커넥터)와 연결될 수 있다. 또한, 프로세서들(110)은, 다른 구성 요소들 중에서 입/출력 엔진(230)을 사용하여 관리될 수 있는 입/출력 인터페이스 포트들 및 유저 인터페이스(225)와 연결될 수 있는 버스(220)와 연결될 수 있다.
도 3 및 도 4는 NVMe 또는 NVMeoF 모드에서 동작하는 도 1의 장치(125)를 보여준다. 도 3에서, 스토리지 장치(125)는 U.2 커넥터(305), PCIe Gen3 X4 칩(310), 스토리지(315), 섀시 타입 회로(320), 그리고 모드 구성 회로(325)를 포함하는 것으로 도시되었다. U.2 커넥터(305)는 스토리지 장치(125)와 같은 장치들 상에서 사용될 수 있는 특정한 종류의 커넥터이다. PCIe, SAS, 그리고 SATA(Serial AT Attachment) 빌트인(built in)에 대한 지원과 함께, U.2 커넥터(305)는 다수의 다양한 인터페이스들을 지원할 수 있다. 도 3 및 도 4가 U.2 커넥터(305)의 사용을 보여주지만, U.2 커넥터(305)는 대체 커넥터들로 대체될 수 있는데, 대체 커넥터들이 본 발명의 실시 예들과 일치하는 방법으로 통신들을 지원할 수 있으면 대체 가능하다. U.2 커넥터(305)가 PCIe 통신의 4 개의 레인들을 지원하고 SAS와 같은 대체 통신 채널들을 지원하는 것 같이, U.2 커넥터(305)의 사용은 다른 커넥터들에 비하여 몇몇 이점들을 갖는다.
PCIe Gen3 X4 칩(310)은 PCIe 버스를 통해 PCIe 통신들을 관리하는 칩이다. 유사 칩이 커넥터에 의해 제공되는 통신 방법들과 호환될 필요가 있음에도 불구하고, PCIe Gen3 X4 칩(310)은 통신들을 관리할 수 있는 어떠한 유사 칩들과도 대체될 수 있고, PCIe 버스를 이용하는 것에 제한되지 않는다. 예를 들어, PCIe 통신들을 관리하지 않는 칩은 U.2 커넥터(305)와 함께 작동하지 않을 수 있다. U.2 커넥터(305) 및 PCI Gen3 X4 칩(310)의 조합이 U.2 커넥터(305)를 통해 사용 가능한 PCIe 버스의 4 개의 레인들의 모든 장점을 가질 수 있다는 점에서, 해당 조합은 이점을 갖는다.
스토리지(315)는 어떠한 바람직한 스토리지 포멧(format)도 될 수 있다. 예를 들어, 다른 가능한 예들 중에, 스토리지(315)는 플래시 메모리일 수 있고, 또는 스토리지(315)는 하드 디스크 드라이브일 수 있다. 본 발명의 실시 예들은 특정 스토리지 포멧에 제한되지 않는다. 물론, 스토리지 장치(125)가 몇몇 다른 타입의 장치로 대체된다면, 스토리지(315)는 다른 타입의 장치에 적합한 몇몇 다른 기능으로 대체될 수 있다.
섀시 타입 회로(320)는 도 1의 섀시(105)에게 도 1의 섀시(105)의 타입을 판단하도록 문의할 수 있다. 본 발명의 일 실시 예에서, 도 1의 섀시(105)는 HA 섀시이거나 HA 섀시가 아닐 수 있고, 도 1의 섀시(105)는 스토리지 장치(125)와 같은 장치들과 통신하기 위해 NVMe 프로토콜 또는 NVMeoF 프로토콜을 이용할 수 있다. 따라서, 이러한 본 발명의 실시 예에서, 도 1의 섀시(105)는 네 개의 다른 타입들 중 어떠한 것도 될 수 있다. 본 발명의 다른 실시 예들은 또한 도 1의 섀시(105)에 대한 다른 가능한 타입들을 고려할 수 있다.
섀시 타입 회로(320)는 모든 바람직한 방법으로 이러한 문의를 수행할 수 있다. 본 발명의 일 실시 예에서, 섀시 타입 회로(320)는 도 1의 VPD(130)로부터 정보를 읽어올 수 있다. 도 1의 VPD(130)는 도 1의 섀시(105)의 타입을 지정할 수 있다. 본 발명의 다른 실시 예에서, 섀시 타입 회로(320)는 U.2 커넥터(305)의 하나 이상의 핀들 상의 신호에 액세스할 수 있다. 이러한 신호는 도 1의 섀시(105)의 타입을 지정할 수 있다. 예를 들어, 하나의 핀(예를 들어, U.2 커넥터(305)의 E25 핀(DualPort En#)) 상의 로우(low) 신호는 도 1의 섀시(105)가 HA 섀시인 것을 식별할 수 있다. 여기서, 해당 핀 상의 하이(high) 신호는 도 1의 섀시(105)가 HA 섀시가 아니라는 것을 식별할 수 있다. 제 2 핀 상의 신호들은 도 1의 섀시(105)가 NVMe 프로토콜 또는 NVMeoF 프로토콜을 사용하는지 여부를 지정하기 위해 병렬로 이용될 수 있다. 예를 들어, 이러한 핀들은 달리 사용되지 않는, U.2 커넥터(305)의 GPIO(General Purpose Input/Output) 핀들일 수 있다. 또한, 이러한 핀들은 U.2 커넥터(305) 내의 핀이 아닐 수 있고, 다만 이러한 핀들은 도 1의 섀시(105) 내의 어딘가에 위치할 수 있다. 스토리지 장치(125)가 핀들 상의 신호들을 읽어올 수 있는 한, 핀들의 위치는 중요하지 않다. 본 발명의 다른 실시 예들은 다른 방법들로 도 1의 섀시(105)의 타입을 판단하는 섀시 타입 회로(320)를 포함할 수 있다.
본 발명의 몇몇 실시 예에서, 스토리지 장치(125)는 기존 섀시(legacy chassis) 내에 위치할 수 있다. 즉, 기존 섀시는 스토리지 장치(125)에 직접 혹은 간접적으로 섀시의 타입을 스토리지 장치(125)에 알리도록 디자인되지 않은 섀시이다. 섀시 타입 회로(320)가 도 1의 섀시(105)의 타입을 판단하지 않는 경우, 섀시 타입 회로(320)는 특정 모드로 기본 값(default)이 설정된다. 예를 들어, 기본 값인 특정 모드는 NVMe 프로토콜을 사용하도록 스토리지 장치(125)를 구성하고 도 1의 섀시(105)가 HA 섀시가 아니라는 것을 가정할 수 있다.
섀시 타입 회로(320)가 섀시(105)의 타입을 일단 판단 하면, 모드 구성 회로(325)는 적합한 프로토콜들을 사용하고 필요 없는 프로토콜들을 비활성화하도록 스토리지 장치(125)를 구성할 수 있다. 예를 들어, 섀시 타입 회로(320)가 섀시(105)가 NVMe 섀시인 것을 나타내는 경우, 모드 구성 회로(325)는 NVMe 프로토콜을 사용하도록 스토리지 장치(125)를 구성할 수 있다.
본 발명의 일 실시 예에서, NVMe 프로토콜을 사용하는 것은 U.2 커넥터(305)의 PCIe 레인들이 데이터 플레인과 컨트롤 플레인 모두에서 사용된다는 것을 의미한다. 도 1의 섀시(105)가 HA 섀시라면, 모드 구성 회로(325)는 PCIe 레인들을 두 개의 세트들로 분할할 수 있다. 하나의 세트는 하나의 호스트와 통신하기 위해 사용되고, 다른 하나의 세트는 다른 호스트와 통신하기 위해 사용된다. 예를 들어, PCIe X2(330)에 도시된 레인 0과 레인 1은 제 1 호스트와 통신하기 위해 할당될 수 있고, PCIe X2(335)에 도시된 레인 2와 레인 3은 제 2 호스트와 통신하기 위해 할당될 수 있다. NVMe 프로토콜이 이더넷을 사용하지 않기 때문에, 모드 구성 회로(325)는 U.2 커넥터(325) 상의 이더넷 포트들을 “비활성화(enable)”할 수 있다. 도 1의 섀시(105)가 HA 섀시가 아닌 경우, 모드 구성 회로(325)는 데이터 플레인과 컨트롤 플레인에 대해 네 개의 PCIe 레인들을 모두 사용하거나, 또는 (다른 두 개의 PCIe 레인들이 다른 호스트와의 통신을 위해 예약된 것처럼) 단지 두 개의 PCIe 레인들을 사용할 수 있다. 좀 더 일반적으로, 본 발명의 실시 예들은 임의의 수의 호스트들과도 통신하기 위해 임의의 수의 레인들도 사용하는 것을 지원한다. 예를 들어, 주어진 수의 레인들(U.2 커넥터(305)와 같이, 4개 이상일 수 있는)을 지원하는 커넥터가 사용되면, 이러한 레인들은 원하는 어떠한 할당으로도 다양한 호스트들과 통신하기 위해 이용될 수 있다. 예를 들어, 모든 레인들은 non-HA 섀시 내에서 단일 호스트로 할당될 수 있고, 또는 레인들이 균등하거나 균등하지 않게 다양한 호스트들과 통신하기 위해 할당될 수 있다. 게다가, 모든 레인들은 할당될 수 있고, 또는 오직 사용 가능한 레인들 중 서브셋 만이 할당될 수 있다.
본 발명의 다른 실시 예에서, NVMeoF 프로토콜을 사용하는 것은 U.2 커넥터(305)의 PCIe 레인들이 오직 컨트롤 플레인에 대해 사용된다는 것을 의미한다. 이더넷 포트들은 데이터 플레인에 대해 사용된다. 도 1의 섀시(105)가 HA 섀시인 경우, 모드 구성 회로(325)는 PCIe 레인들을 두 개의 세트로 분할할 수 있다. 하나의 세트는 하나의 호스트와 통신하기 위해 사용되고, 다른 하나의 세트는 다른 호스트와 통신하기 위해 사용된다. 예를 들어, PCIe X2(330)에 도시된 레인 0과 레인 1은 제 1 호스트와 통신하기 위해 할당될 수 있고, PCIe X2(335)에 도시된 레인 2와 레인 3은 제 2 호스트와 통신하기 위해 할당될 수 있다. 다만, 데이터는, 예컨대 U.2 커넥터(305) 상의 SAS 핀들을 통해 형성될 수 있는, 이더넷 포트들을 통해 통신될 수 있다. 다른 이더넷 포트들이 다른 호스트들에 대해 다른 SAS 핀들 상에서 형성될 수 있다. 따라서, 이더넷 포트(405)는 제 1 호스트와 데이터를 통신하기 위해 사용될 수 있고, 이더넷 포트(410)는 제 2 호스트와 데이터를 통신하기 위해 사용될 수 있다. NVMeoF 프로토콜이 데이터 플레인에 대해 PCIe 레인들을 사용하지 않기 때문에, 비록 PCIe 레인들이 여전히 컨트롤 플레인에 대해 사용된다 해도, 모드 구성 회로(325)는 데이터에 대해 U.2 커넥터(305) 상의 PCIe 레인들을 “비활성화(disable)”할 수 있다. 도 1의 섀시(105)가 HA 섀시가 아니라면, 모드 구성 회로(325)는 컨트롤 플레인에 대해 네 개의 PCIe 레인들을 모두 사용하거나, 또는 (다른 두 개의 PCIe 레인들이 다른 호스트와 통신하기 위해 예약된 것처럼) 단지 두 개의 PCIe 레인들을 사용할 수 있다. 또한, 모드 구성 회로(325)는 하나의 호스트와 통신하기 위해 단지 하나의 이더넷 포트를 설정하거나 복수의 이더넷 포트를 설정할 수 있다. 그리고, 이론적으로 어떠한 수의 SAS 핀들도 임의의 이더넷 포트에도 할당될 수 있다.
모드 구성 회로(325)는 어떠한 바람직한 방법으로도 구현될 수 있다. 단순한 접근은 모드 구성 회로(325)가 역 다중화기(demultiplexer)로 구성된 것이다. 섀시 타입 회로(320)로부터 수신된 정보는 역 다중화기로의 컨트롤 신호일 수 있다. 그러면, 컨트롤 신호는 신호에 대한 특정 목적지(PCIe 레인들 또는 이더넷 포트들)를 선택하기 위해 이용될 수 있다. 좀 더 복잡한 접근은 NVMe 프로토콜 회로(340)와 NVMeoF 프로토콜 회로(415)를 모두 포함하고, 모드 구성 회로(325)를 이용하여 적합한 회로로 신호들이 향하도록 하는 것이 될 수 있다. 이러한 방법에서, 신호들이 U.2 커넥터(305)의 적합한 핀들로 전송되기 전에, 본 발명의 실시 예들은 신호들 상의 어떠한 중개(intermediary) 프로세싱도 지원할 수 있다.
일반적으로, 장치가 도 1의 섀시(105)에 플러그 인(plug in)되는 때에 핫 플러깅(hot plugging)을 지원하는 본 발명의 실시 예들이 도 1의 섀시(105)의 타입을 판단할 수 있음에도 불구하고, 섀시 타입 회로(320)는 부트 업(boot up) 시에 도 1의 섀시(105)의 타입을 판단한다. 즉, 스토리지 장치(125)가 파워 업될 때, 섀시 타입 회로(320)는 도 1의 섀시(105)의 타입을 판단하고, 모드 구성 회로(325)는 스토리지 장치(125)를 구성한다. 그러면, 스토리지 장치(125) 장치가 파워 다운되거나 리부트(reboot)될 때까지, 스토리지 장치(125)는 그것의 구성을 유지한다. 다만, 본 발명의 몇몇 실시 예들에서, 도 1의 섀시(105)가 그것의 구성을 변경한다면, 섀시 타입 회로(320)는 이러한 점(fact)을 판단할 수 있다. 예를 들어, U.2 커넥터(305) 내의 핀들 상의 신호들 내의 변화를 센싱하거나, 주기적으로 도 1의 VPD(130)를 확인하거나, 신호나 도 1의 VPD(130) 내의 변화를 확인하기 위해 도 1의 섀시(105)의 일부 구성(예를 들어, BMC)로부터 신호를 수신함에 의해, 이러한 점을 판단할 수 있다. 그러면, 섀시 타입 회로(320)는 모드 구성 회로(325)가 스토리지 장치(125)의 모드를 변화하도록 신호를 보낸다. 이것은 새로운 모드가 효과를 발휘하기 위해 저장 장치 (125)를 재부팅하는 것을 포함 할 수 있다.
도 4에서, 추가적인 구성 요소들이 도시되었다. 구체적으로, 이더넷(420), IP(Internet Protocol, 425), TCP(Transmission Control Protocol, 430), 그리고 RDMA(Remote Direct Memory Access, 435)가 도시되었다. 이더넷(420), IP(425), TCP(430), RDMA(435), 그리고 NVMeoF 프로토콜(415)은 함께 페브릭(fabric)-부착형 엔진을 구성한다. 이러한 구성 요소들은 적합한 구현에 따라 대체되거나 보충될 수 있다. 예를 들어, 이더넷 이외의 다른 프로토콜들(예를 들어, InfiniBand 또는 Fibre Channel)을 지원하는 것이 바람직한 경우, 추가적인 소프트웨어가 페브릭-부착형 엔진 내의 이더넷(420)을 대신하거나 이에 추가되어 사용될 수 있다.
도 5는 HA 섀시 내에서 두 개의 호스트와 통신하는 도 1의 장치를 보여준다. 도 5에서, 스토리지 장치(125), PCIe X2 레인들(330, 335), 그리고 이더넷 포트들(405, 410)이 도시되었다. 이러한 데이터 플레인 및 컨트롤 플레인은 미드 플레인(505)과 통신할 수 있다. 그러면, 미드 플레인(505)은 데이터를 적합한 호스트로 향하게 할 수 있다. 따라서, 호스트(510)는 PCIe X2 레인들(330)과 이더넷 포트들(405)로부터의 통신들을 수신할 수 있다. 반면, 호스트(515)는 PCIe X2 레인들(335)과 이더넷 포트들(410)로부터의 통신들을 수신할 수 있다.
도 5는 HA 섀시 내의 두 개의 호스트들과 통신하기 위해 도 4의 NVMeoF 프로토콜(415)을 사용하는 스토리지 장치(125)를 보여준다. 스토리지 장치(125)가 NVMeoF 프로토콜(415) 대신에 NVMe 프로토콜(340)을 사용하였다면, 이더넷 포트들(405, 410)은 도시되지 않았을 것이다. 그리고, 만약 섀시가 HA 섀시가 아니라면, 비록 PCIe 레인들(335)과 이더넷 포트들(410)과 같은 통신 채널들이 호스트(510)에 추가적인 통신 채널을 제공하기 위해 사용될 수 있다고 해도, PCIe 레인들(335)과 이더넷 포트들(410)은 비활성화 되거나, 도면에 도시되지 않았을 것이다.
셀프 구성되고 복수의 모드들을 지원할 수 있는 것 외에, 도 1 내지 도 5의 스토리지 장치(125)는 또한 가치 있는 정보를 시스템에 전송할 수 있다. 예를 들어, 스토리지 장치(125)는 그것의 건강 상태, FRU(Field-Replaceable Unit) 정보, 센서 정보, 및/또는 디스커버리 서비스들에 대한 정보를 전송할 수 있다. 예를 들어, 스토리지 장치(125)는 그것의 건강 상태에 대한 정보(예를 들어, 얼마나 효율적으로 스토리지 장치(125)가 동작하는지 등)를 리포트할 수 있다. 이러한 정보는 스토리지 장치(125)에 걸쳐 글로벌(global)할 수 있고, 또는 좀 더 집중될 수 있다. 예를 들어, 도 3 및 도 4의 스토리지 장치(125)의 스토리지(315)의 특정 영역에 대해, 스토리지 장치(125)는 스토리지(315)가 단지 “17.3% OK”라는 것을 리포트할 수 있다. FRU 정보는 모든 특정 FRU의 상태에 대해 도 1의 섀시(105)로 알릴 수 있다. 예를 들어, FRU는 도 1의 EEPROM(120), 스위치 보드, 메모리 모듈, 프로세서, BMC, 또는 어떠한 다른 FRU도 될 수 있다. 센서 정보는 예를 들어, 스토리지 장치(125) 내의 온도 센서에 대한 정보를 포함할 수 있다. 그러면, BMC는 온도 센서에 대한 정보를 이용하여 도 1의 섀시(105) 내의 쿨링(cooling)을 조정할 수 있다. 디스커버리 서비스들은, 모든 목적을 위해 본 명세서에서 참고 문헌으로 인용된, 미국 임시 특허 출원 번호 US 62/394,726(2016년 9월 14일 출원)과 이를 우선권 주장하고 있는 미국 특허 출원 번호 US 15/345,507(2016년 11월 7일 출원)에 기술된 것들을 포함한다.
또한, 스토리지 장치(125)는 펌웨어 업데이트들을 지원할 수 있다. 본 발명의 실시 예들에서, 섀시(105)(또는, 스토리지 장치(125)가 통신할 수 있는 다른 섀시) 내의 BMC는 업데이트된 펌웨어를 수신하거나 다운로드할 수 있다. 그러면, BMC는, 스토리지 장치(125)와 통신하고, 펌웨어 업데이트가 스토리지 장치(125)와 호환되는지를 검증하고, 그리고 펌웨어 업데이트를 이용하여 스토리지 장치(125) 내의 펌웨어를 업그레이드할 수 있다. 이러한 펌웨어 업데이트는 백그라운드(background) 프로세스로서 실행될 수 있다. 특히, 스토리지 장치(125)가 도 4의 NVMeoF 프로토콜(415)을 이용하여 동작 중인 경우, 이러한 펌웨어 업데이트는 컨트롤 플레인을 이용하여 수행될 수 있다. 이에 따라, 스토리지 장치(125) 상의 데이터를 이용하는 어플리케이션들에 대한 어떠한 딜레이들(delays)도 방지된다.
도 6은 본 발명의 실시 예에 따른 도 1의 장치(125)가 셀프-구성(self-configure)하기 위한 절차를 예시적으로 보여주는 순서도이다. 도 6에서, S605에서, 도 1의 스토리지 장치(125)는 도 1의 섀시(105)의 타입을 판단할 수 있다. 본 발명의 몇몇 실시 예들에서, 섀시(105)의 타입을 판단하는 것은 도 1의 섀시(105)가 HA 섀시인지 여부를 판단하는 것, 및/또는 도 1의 섀시(105)가 통신을 위해 도 3의 NVMe 프로토콜(340)이나 도 4의 NVMeoF 프로토콜(415)을 사용하는지 여부를 판단하는 것을 포함할 수 있다. 다른 가능한 예들 중에서, S610에 도시된 바와 같이, 이러한 판단은 도 1의 VPD(130)로부터 도 1의 섀시(105)의 타입을 읽어옴으로써 수행될 수 있다. 또는, S615에서 도시된 바와 같이, 이러한 판단은 도 3의 U.2 커넥터(305)로부터 하나 이상의 핀들(예를 들어, GPIO 핀들)로부터의 신호에 액세스함에 의해 수행될 수 있다. 결과적으로, S620에서, 도 1의 스토리지 장치(125)는 셀프-구성할 수 있다. 이러한 과정의 예는 이하의 도 7a 및 도 7b에서 좀 더 자세히 도시된다.
도 7a 및 도 7b는 본 발명의 실시 예에 따른 도 3의 NVMe 프로토콜(340) 또는 도 4의 NVMeoF 프로토콜(410), 그리고 HA 섀시 또는 non-HA 섀시에 대해 도 1의 장치(125)가 셀프-구성하기 위한 절차를 예시적으로 보여주는 순서도이다. 도 7a에서, S705에서, 도 1의 스토리지 장치(125)는 도 1의 섀시(105)가 HA 섀시인지 여부를 판단할 수 있다. HA 섀시인 경우, S710에서, 도 1의 스토리지 장치(125)는 스토리지 장치(125)가 HA 스토리지 장치인지 여부를 판단할 수 있다. 도 1의 섀시(105)가 HA 섀시이지만 도 1의 스토리지 장치(125)가 HA 스토리지 장치가 아닌 경우, S715에서, 도 1의 스토리지 장치(125)는 경고를 리포트할 수 있다. 이는 단일 포트 장치가 듀얼 포트 섀시 내에서 올바르게 동작하지 못할 수 있기 때문이다. 이후, 프로세싱은 종료된다.
반면에, 도 1의 스토리지 장치(125)가 도 1의 섀시(105) 내에서 동작하는 경우, S720에서, 도 1의 스토리지 장치(125)는 도 1의 섀시(105)의 타입을 판단할 수 있다. 도 7a 및 도 7b에 도시된 본 발명의 실시 예에서, 섀시의 타입은 도 3의 NVMe 프로토콜(340)이나 도 4의 NVMeoF 프로토콜(415)이다. 도 1의 섀시(105)의 타입이 판단되지 않은 경우(예를 들어, 도 1의 섀시(105)가 이러한 정보를 제공하지 않는 기존 섀시인 경우), 도 3의 NVMe 프로토콜(340)이 가정된다.
도 1의 섀시(105)가 도 4의 NVMeoF 프로토콜(415)을 사용하는 경우, 도 7b의 S725에서, 도 1의 스토리지 장치(125)는 하나의 호스트와의 통신을 위해 컨트롤 플레인으로서 두 개(또는, 그 이상)의 PCIe 레인들을 활성화할 수 있다. 그리고 S730에서, 도 1의 스토리지 장치(125)는 해당 하나의 호스트와 통신하기 위해 데이터 플레인으로서 하나 이상의 이더넷 포트들을 활성화할 수 있다. S735에서, 예컨대 도 1의 섀시(105)가 HA 섀시인 경우, 도 1의 스토리지 장치(125)는 제 2 호스트와 통신하기 위해 컨트롤 플레인으로서 두 개(또는, 그 이상)의 추가적인 PCIe 레인들을 활성화할 수 있다. 그리고, S740에서, 도 1의 스토리지 장치(125)는 해당 제 2 호스트와의 통신을 위해 데이터 플레인으로서 하나 이상의 추가적인 이더넷 포트들을 활성화할 수 있다. 예를 들어, 이더넷 포트들은 도 3의 U.2 커넥터(305) 상의 SAS 핀들을 통해 운용될 수 있다. 만약 도 1의 섀시(105)와 도 1의 스토리지 장치(125)가 HA가 아닌 경우, 점선 화살표(745)로 도시된 바와 같이 S735와 S740은 생략될 수 있다. 최종적으로, S750에서, 도 1의 스토리지 장치(125)는 도 1의 스토리지 장치(125) 상의 데이터 플레인으로서의 PCIe 버스 상의 레인들의 사용을 (활성화 하지 않음으로써) “비활성화(disable)”할 수 있다.
반면에, 도 1의 섀시(105)가 도 3의 NVMe 프로토콜(340)을 사용하는 경우, S755에서, 도 1의 스토리지 장치(125)는 하나의 호스트에 데이터 플레인과 컨트롤 플레인을 모두 사용하기 위해 PCIe 버스의 두 개(또는, 그 이상)의 레인들을 활성화할 수 있다. S760에서, 예컨대 도 1의 섀시(105)가 HA 섀시인 경우, 도 1의 스토리지 장치(125)는 제 2 호스트에 데이터 플레인과 컨트롤 플레인을 모두 사용하기 위해 PCIe 버스의 두 개(또는, 그 이상)의 레인들을 활성화할 수 있다. 만약 도 1의 섀시(105)와 도 1의 스토리지 장치(125)가 HA가 아닌 경우, 점선 화살표(765)로 도시된 바와 같이 S760은 생략될 수 있다. 최종적으로, S770에서, 도 1의 스토리지 장치(125)는 도 1의 스토리지 장치(125) 상의 모든 이더넷 포트들을 (활성화 하지 않음으로써) “비활성화(disable)”할 수 있다.
도 6, 도 7a, 도 7b에서, 본 발명의 일부 실시 예들이 도시되었다. 하지만, 블록(혹은 step)들의 순서를 변경하고, 블록들을 생략하거나, 도면들에 도시되지 않는 링크들을 포함함으로써, 당업자는 본 발명의 다른 실시 예들 역시 가능하다는 것을 알 수 있을 것이다. 명시적으로 설명되었는지 여부와 관계 없이, 순서도들의 이러한 모든 변형들은 본 발명의 실시 예들로 간주된다.
아래의 설명은 본 발명의 기술적 사상의 일부 측면들이 구현되는 적절한 기계(혹은, 머신) 또는 기계들의 짧고 일반적인 설명을 제공하고자 한다. 기계 또는 기계들은 적어도 일부는 다른 기계로부터 수신되는 지시들, 가상현실(VR) 환경과의 상호 작용, 생체 피드백, 또는 다른 입력 신호뿐 아니라 키보드, 마우스 등과 같은 통상적인 입력 장치들로부터의 입력에 의해 제어될 수 있다. 여기에서 사용되는 바와 같이, "기계(machine)"의 용어는 단일 기계, 가상 기계, 또는 기계들, 가상 기계들 또는 함께 동작하는 장치들과 통신하도록 결합된 시스템을 넓게 포함하는 것으로 의도된다. 예시적인 기계들은 예를 들어 자동차, 기차, 택시 등과 같은 개인용 또는 공공 수송과 같은 수송 장치들뿐 아니라 개인용 컴퓨터들, 워크스테이션들, 서버들, 포터블 컴퓨터들, 핸드헬드 장치들, 전화들, 태블릿들 등과 같은 컴퓨팅 장치들을 포함할 수 있다.
기계 또는 기계들은 프로그램 가능한 또는 프로그램 불가능한 논리 장치들 또는 어레이들, ASIC(Application Specific Integrated Circuit), 임베디드 컴퓨터들, 스마트 카드들 등과 같은 임베디드 컨트롤러들을 포함할 수 있다. 기계 또는 기계들은 네트워크 인터페이스, 모뎀, 또는 다른 통신 결합들을 통해서와 같이 하나 또는 그보다 많은 원격 기계들에 대한 하나 또는 그보다 많은 연결들을 활용할 수 있다. 기계들은 인트라넷, 인터넷, LAN (local area networks), WAN (wide area networks) 등과 같은 물리적 그리고/또는 논리적 네트워크의 수단으로 서로 연결될 수 있다. 이 분야에 숙력된 자는 네트워크 통신이 다양한 유선 그리고/또는 무선 근거리 또는 원거리 캐리어들 및 무선 주파수(RF), 위성, 마이크로파, IEEE 802.11, 블루투스, 광학, 적외선, 케이블, 레이저 등을 포함하는 프로토콜을 활용함을 이해할 것이다.
본 발명의 기술적 사상의 실시 예들은, 기계에 의해 액세스되는 때에 기계가 작업들을 수행하거나 또는 추상적인 데이터 타입들 또는 저레벨 하드웨어 콘텍스트들을 정의하는 것을 유발하는 함수들, 절차들, 데이터 구조들, 응용 프로그램들 등을 포함하는 연관된 데이터를 참조하여 또는 협력하여 설명될 수 있다. 연관된 데이터는, 예를 들어 RAM, ROM 등과 같은 휘발성 그리고/또는 불휘발성 메모리, 또는 다른 스토리지 장치들, 그리고 하드 드라이브, 플로피 디스크, 광학 스토리지, 테이프들, 플래시 메모리, 메모리 스틱들, 디지털 비디오 디스크들, 생체 스토리지 등을 포함하는 연관된 스토리지 매체에 저장될 수 있다. 연관된 데이터는 물리적 그리고/또는 논리적 네트워크를 포함하는 전송 환경들을 거쳐 패킷들, 직렬 데이터, 병렬 데이터, 전송신호들 등의 형태로 전달되고, 압축된 또는 암호화된 포맷으로 이용될 수 있다. 연관된 데이터는 분산 환경에서 사용될 수 있으며, 기계 액세스에 대해 지역적 그리고/또는 원격으로 저장될 수 있다.
본 발명의 기술적 사상의 실시 예들은 하나 또는 그보다 많은 프로세서들에 의해 실행 가능하며 여기에 설명된 바와 같이 본 발명의 기술적 사상의 원소들을 수행하게 하는 명령들을 포함하는 실재하는 비임시 기계 독출 매체를 포함할 수 있다.
도시된 실시 예들을 참조하여 설명된 본 발명의 기술적 사상의 원칙들을 가지면, 도시된 실시 예들이 이러한 원칙들로부터 멀어지지 않으면서 배열 및 상세에서 수정될 수 있고 필요한 임의의 방법으로 조합될 수 있음이 이해될 것이다. 앞선 설명이 구체적인 실시 예들에 집중하였지만, 다른 구성돌 또한 고려된다. 구체적으로, "본 발명의 기술적 사상의 실시 예에 따른"과 같은 설명들 또는 여기에 사용된 유사한 것들에 불구하고, 이러한 문구들은 일반적으로 실시 예의 가능성들을 참조하며, 본 발명의 기술적 사상을 구체적인 실시 예의 구성들로 한정하는 것을 의도하지 않는다. 여기에 사용되는 바와 같이, 이러한 용어들은 다른 실시 예들로 조합 가능한 동일한 또는 상이한 실시 예들을 참조할 수 있다.
앞서 설명된 실시 예들은 본 발명의 기술적 사상을 그것들로 한정하는 것으로 해석되지 않는다. 적은 실시 예들만이 설명되었지만, 이 분야에 숙련된 자들은 본 기재의 신규한 설명들 및 장점들로부터 실질적으로 멀어지지 않으면서 이러한 실시 예들에 많은 수정들이 가능함을 충분히 이해할 것이다. 따라서, 이러한 모든 수정들은 청구항들에서 정의되는 바와 같이 본 발명의 기술적 사상의 범위 내에 포함되는 것으로 의도된다.
발명의 개념의 실시 예들은 제한사항 없이 다음 진술들로 확장될 수 있다.
진술 1. 본 발명의 실시 예는 장치를 포함한다. 장치는:
상기 장치를 섀시와 연결하는 커넥터;
상기 장치를 포함하는 상기 섀시의 타입(type)을 판단하는 섀시 타입 회로; 그리고
상기 섀시의 상기 타입에 응답하여, 제 1 모드 또는 제 2 모드를 사용하도록 상기 장치를 구성하는 모드 구성 회로를 포함한다.
진술 2. 본 발명의 실시 예는 진술 1에 따른 장치를 포함하되,
상기 장치는 데이터에 대한 스토리지를 더 포함한다.
진술 3. 본 발명의 실시 예는 진술 1에 따른 장치를 포함하되,
상기 섀시 타입 회로는 EEPROM(Electrically Erasable Programmable Read-Only Memory) 내의 주소로부터 VPD(Vital Product Data)를 읽음으로써 상기 섀시의 상기 타입을 판단하도록 동작한다.
진술 4. 본 발명의 실시 예는 진술 1에 따른 장치를 포함하되,
상기 섀시 타입 회로는 상기 커넥터 상의 핀 상의 신호로부터 상기 섀시의 상기 타입을 판단하도록 동작한다.
진술 5. 본 발명의 실시 예는 진술 4에 따른 장치를 포함하되,
상기 커넥터 상의 상기 핀은 상기 커넥터 상의 GPIO(General Purpose Input/Output) 핀을 포함한다.
진술 6. 본 발명의 실시 예는 진술 1에 따른 장치를 포함하되,
상기 모드 구성 회로는, 상기 섀시 타입 회로가 상기 섀시의 상기 타입을 판단하지 못하는 경우, 상기 제 1 모드를 이용하도록 상기 장치를 구성하도록 동작한다.
진술 7. 본 발명의 실시 예는 진술 1에 따른 장치를 포함하되,
상기 제 1 모드는, 상기 장치와 상기 섀시 사이의 통신을 위한 NVMe(Non-Volatile Memory express) 프로토콜을 포함하고,
상기 제 2 모드는, 상기 장치와 상기 섀시 사이의 통신을 위한 NVMeoF(Non-Volatile Memory express over Fabric) 프로토콜을 포함한다.
진술 8. 본 발명의 실시 예는 진술 7에 따른 장치를 포함하되,
상기 NVMeoF 프로토콜은, 이더넷(Ethernet), InfiniBand, 그리고 Fibre 채널을 포함하는 세트로부터 추출된 프로토콜을 사용하여 상기 장치와 상기 섀시 사이의 데이터를 교환하기 위한 로직을 포함한다.
진술 9. 본 발명의 실시 예는 진술 7에 따른 장치를 포함하되,
상기 커넥터는 복수의 PCIe(Peripheral Component Interconnect express) 레인들 및 SAS(Serial Attached Small computer system interface) 핀들을 지원한다.
진술 10. 본 발명의 실시 예는 진술 9에 따른 장치를 포함하되,
상기 커넥터는 U.2 커넥터를 포함한다.
진술 11. 본 발명의 실시 예는 진술 9에 따른 장치를 포함하되,
상기 섀시의 상기 타입이 NVMe인 경우, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 1의 두 개의 레인들을 제 1 호스트에 대한 제 1 데이터 플레인 및 제 1 컨트롤 플레인으로 이용하고, 상기 SAS 핀들을 통한 이더넷 포트의 사용을 비활성화하도록 동작한다.
진술 12. 본 발명의 실시 예는 진술 9에 따른 장치를 포함하되,
상기 섀시의 상기 타입이 NVMeoF인 경우, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 1의 두 개의 레인들을 제 1 호스트에 대한 제 1 컨트롤 플레인으로 이용하고, SAS 핀들의 제 1 세트를 제 1 데이터 플레인에 대한 제 1 이더넷 포트로 사용하도록 동작한다.
진술 13. 본 발명의 실시 예는 진술 9에 따른 장치를 포함하되,
상기 섀시 타입 회로는, 상기 섀시의 상기 타입이 HA(High Availability) 섀시인지 여부를 판단하도록 동작한다.
진술 14. 본 발명의 실시 예는 진술 13에 따른 장치를 포함하되,
상기 섀시의 상기 타입이 NVMe인 경우, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 데이터 플레인 및 제 2 컨트롤 플레인으로 이용하고, 상기 SAS 핀들을 통한 이더넷 포트의 사용을 비활성화하도록 동작한다.
진술 15. 본 발명의 실시 예는 진술 13에 따른 장치를 포함하되,
상기 섀시의 상기 타입이 NVMeoF인 경우, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 컨트롤 플레인으로 이용하고, SAS 핀들의 제 2 세트를 제 2 데이터 플레인에 대한 제 2 이더넷 포트로 사용하도록 동작한다.
진술 16. 본 발명의 실시 예는 방법을 포함하되, 상기 방법은:
장치가 설치된 섀시의 타입을 판단하는 단계; 그리고
상기 섀시의 상기 타입에 따라, 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계를 포함한다.
진술 17. 본 발명의 실시 예는 진술 16에 따른 방법을 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 EEPROM 내의 VPD로부터 상기 섀시의 상기 타입에 액세스하는 단계를 포함한다.
진술 18. 본 발명의 실시 예는 진술 16에 따른 방법을 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 장치와 연결된 커넥터 상의 핀으로부터의 신호에 액세스하는 단계를 포함한다.
진술 19. 본 발명의 실시 예는 진술 18에 따른 방법을 포함하되,
상기 장치와 연결된 커넥터 상의 핀으로부터의 신호에 액세스하는 단계는 상기 장치와 연결된 상기 커넥터 상의 GPIO(General Purpose Input/Output) 핀으로부터의 상기 신호에 액세스하는 단계를 포함한다.
진술 20. 본 발명의 실시 예는 진술 16에 따른 방법을 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 NVMe 섀시 또는 NVMeoF 섀시인지를 판단하는 단계를 포함한다.
진술 21. 본 발명의 실시 예는 진술 20에 따른 방법을 포함하되,
상기 섀시의 상기 타입이 NVMe 섀시 또는 NVMeoF 섀시인지를 판단하는 단계는, 상기 장치가 상기 섀시의 상기 타입을 판단하지 못하는 경우, 상기 섀시의 상기 타입을 상기 NVMe 섀시인 것으로 기본 값 설정하는 단계를 포함한다.
진술 22. 본 발명의 실시 예는 진술 20에 따른 방법을 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 NVMe 섀시인 경우,
상기 PCIe 버스 내의 두 개의 레인들을 제 1 호스트에 대해 제 1 데이터 플레인 및 제 1 컨트롤 플레인으로 이용하도록 상기 장치를 활성화하고, 상기 장치가 상기 제 1 호스트에 대한 상기 장치 상의 이더넷 포트를 사용하지 못하도록 비활성화하는 단계를 포함한다.
진술 23. 본 발명의 실시 예는 진술 22에 따른 방법을 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 HA 섀시인지 여부를 판단하는 단계를 더 포함하고,
상기 방법은 상기 장치가 HA 장치인지 여부를 판단하는 단계를 더 포함한다.
진술 24. 본 발명의 실시 예는 진술 23에 따른 방법을 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 HA 섀시이고 상기 장치가 HA 장치인 경우,
PCIe 버스 내의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 데이터 플레인 및 제 2 컨트롤 플레인으로 활성화하는 단계를 포함한다.
진술 25. 본 발명의 실시 예는 진술 23에 따른 방법을 포함하되,
상기 방법은, 상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치가 아닌 경우, 경고를 리포팅하는 단계를 더 포함한다.
진술 26. 본 발명의 실시 예는 진술 20에 따른 방법을 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 NVMeoF 섀시인 경우,
PCIe 버스 내의 제 1의 두 개의 레인들을 제 1 호스트에 대한 제 1 컨트롤 플레인으로 활성화하는 단계;
상기 장치 상의 제 1 이더넷 포트를 상기 제 1 호스트에 대한 제 1 데이터 플레인으로 활성화하는 단계; 그리고
상기 제 1 호스트에 대한 상기 제 1 데이터 플레인으로서의 상기 PCIe 버스 내의 상기 레인들을 비활성화하는 단계를 포함한다.
진술 27. 본 발명의 실시 예는 진술 26에 따른 방법을 포함하되,
상기 장치 상의 제 1 이더넷 포트를 상기 제 1 호스트에 대한 제 1 데이터 플레인으로 활성화하는 단계는 상기 장치와 연결된 커넥터 상의 SAS 핀들의 제 1 쌍을 상기 제 1 이더넷 포트로서 사용하는 단계를 포함한다.
진술 28. 본 발명의 실시 예는 진술 26에 따른 방법을 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 HA 섀시인지 여부를 판단하는 단계를 포함하고,
상기 방법은 상기 장치가 HA 장치인지 여부를 판단하는 단계를 더 포함한다.
진술 29. 본 발명의 실시 예는 진술 28에 따른 방법을 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치인 경우,
PCIe 버스 내의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 컨트롤 플레인으로 활성화하는 단계; 그리고
상기 장치 상의 제 2 이더넷 포트를 상기 제 2 호스트에 대한 제 2 데이터 플레인으로 활성화하는 단계를 포함한다.
진술 30. 본 발명의 실시 예는 진술 29에 따른 방법을 포함하되,
상기 장치 상의 제 2 이더넷 포트를 상기 제 2 호스트에 대한 제 2 데이터 플레인으로 활성화하는 단계는, 상기 장치와 연결된 커넥터 상의 SAS 핀들의 제 2 쌍을 상기 제 2 이더넷 포트로서 사용하는 단계를 포함한다.
진술 31. 본 발명의 실시 예는 진술 28에 따른 방법을 포함하되,
상기 방법은 상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치가 아닌 경우, 경고를 리포팅하는 단계를 더 포함한다.
진술 32. 본 발명의 실시 예는 논 트랜지토리(Non-Transitory) 명령들을 저장하는 유형의 스토리지 매체(tangible storage medium)를 포함하는 장치에 있어,
상기 논 트랜지토리 명령들은 머신에 의해 실행될 때:
장치가 설치된 섀시의 타입을 판단하는 단계; 그리고
상기 섀시의 상기 타입에 따라, 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계를 수행한다.
진술 33. 본 발명의 실시 예는 진술 32에 따른 장치를 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 EEPROM 내의 VPD로부터 상기 섀시의 상기 타입에 액세스하는 단계를 포함한다.
진술 34. 본 발명의 실시 예는 진술 32에 따른 장치를 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 장치와 연결된 커넥터 상의 핀으로부터의 신호에 액세스하는 단계를 포함한다.
진술 35. 본 발명의 실시 예는 진술 34에 따른 장치를 포함하되,
상기 장치와 연결된 커넥터 상의 핀으로부터의 신호에 액세스하는 단계는 상기 장치와 연결된 상기 커넥터 상의 GPIO 핀으로부터의 상기 신호에 액세스하는 단계를 포함한다.
진술 36. 본 발명의 실시 예는 진술 32에 따른 장치를 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 NVMe 섀시 또는 NVMeoF 섀시인지를 판단하는 단계를 포함한다.
진술 37. 본 발명의 실시 예는 진술 36에 따른 장치를 포함하되,
상기 섀시의 상기 타입이 NVMe 섀시 또는 NVMeoF 섀시인지를 판단하는 단계는, 상기 장치가 상기 섀시의 상기 타입을 판단하지 못하는 경우, 상기 섀시의 상기 타입을 상기 NVMe 섀시인 것으로 기본 값 설정하는 단계를 포함한다.
진술 38. 본 발명의 실시 예는 진술 36에 따른 장치를 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 NVMe 섀시인 경우,
상기 PCIe 버스 내의 두 개의 레인들을 제 1 호스트에 대해 제 1 데이터 플레인 및 제 1 컨트롤 플레인으로 이용하도록 상기 장치를 활성화하고, 상기 장치가 상기 제 1 호스트에 대한 상기 장치 상의 이더넷 포트를 사용하지 못하도록 비활성화하는 단계를 포함한다.
진술 39. 본 발명의 실시 예는 진술 38에 따른 장치를 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 HA 섀시인지 여부를 판단하는 단계를 더 포함하고,
상기 논 트랜지토리 명령들은 머신에 의해 실행될 때: 상기 장치가 HA 장치인지 여부를 판단하는 단계를 더 수행한다.
진술 40. 본 발명의 실시 예는 진술 39에 따른 장치를 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 HA 섀시이고 상기 장치가 HA 장치인 경우,
PCIe 버스 내의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 데이터 플레인 및 제 2 컨트롤 플레인으로 활성화하는 단계를 포함한다.
진술 41. 본 발명의 실시 예는 진술 39에 따른 장치를 포함하되,
상기 논 트랜지토리 명령들은 머신에 의해 실행될 때:
상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치가 아닌 경우, 경고를 리포팅하는 단계를 더 수행한다.
진술 42. 본 발명의 실시 예는 진술 36에 따른 장치를 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 상기 NVMeoF 섀시인 경우,
PCIe 버스 내의 제 1의 두 개의 레인들을 제 1 호스트에 대한 제 1 컨트롤 플레인으로 활성화하는 단계;
상기 장치 상의 제 1 이더넷 포트를 상기 제 1 호스트에 대한 제 1 데이터 플레인으로 활성화하는 단계; 그리고
상기 제 1 호스트에 대한 상기 제 1 데이터 플레인으로서의 상기 PCIe 버스 내의 상기 레인들을 비활성화하는 단계를 포함한다.
진술 43. 본 발명의 실시 예는 진술 42에 따른 장치를 포함하되,
상기 장치 상의 제 1 이더넷 포트를 상기 제 1 호스트에 대한 제 1 데이터 플레인으로 활성화하는 단계는 상기 장치와 연결된 커넥터 상의 SAS 핀들의 제 1 쌍을 상기 제 1 이더넷 포트로서 사용하는 단계를 포함한다.
진술 44. 본 발명의 실시 예는 진술 42에 따른 장치를 포함하되,
상기 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 섀시의 상기 타입이 HA 섀시인지 여부를 판단하는 단계를 포함하고,
상기 논 트랜지토리 명령들은 머신에 의해 실행될 때: 상기 장치가 HA 장치인지 여부를 판단하는 단계를 더 수행한다.
진술 45. 본 발명의 실시 예는 진술 44에 따른 장치를 포함하되,
상기 섀시의 상기 타입에 따라, 상기 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 장치를 구성하는 단계는, 만약 상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치인 경우,
PCIe 버스 내의 제 2의 두 개의 레인들을 제 2 호스트에 대한 제 2 컨트롤 플레인으로 활성화하는 단계; 그리고
상기 장치 상의 제 2 이더넷 포트를 상기 제 2 호스트에 대한 제 2 데이터 플레인으로 활성화하는 단계를 포함한다.
진술 46. 본 발명의 실시 예는 진술 45에 따른 장치를 포함하되,
상기 장치 상의 제 2 이더넷 포트를 상기 제 2 호스트에 대한 제 2 데이터 플레인으로 활성화하는 단계는, 상기 장치와 연결된 커넥터 상의 SAS 핀들의 제 2 쌍을 상기 제 2 이더넷 포트로서 사용하는 단계를 포함한다.
진술 47. 본 발명의 실시 예는 진술 44에 따른 장치를 포함하되,
상기 논 트랜지토리 명령들은 머신에 의해 실행될 때: 상기 섀시의 상기 타입이 HA 섀시이고 상기 장치가 HA 장치가 아닌 경우, 경고를 리포팅하는 단계를 더 수행한다.
결과적으로, 본 명세서에서 기술된 실시 예들에 대한 다양한 광범위한 변경들의 관점에서, 이러한 상세한 설명과 첨부된 자료들은 단지 예시적인 것으로 의도되었고, 본 발명의 개념의 범위를 제한하는 것으로 간주되어서는 안 된다. 따라서, 본 발명의 개념으로서 청구되는 것은 다음의 청구항들과 그 균등물의 범위 및 사상 내에 있을 수 있는 모든 변형들이다.
105: 섀시 110: 프로세서
115: 메모리 120: EEPROM
125: 스토리지 장치 130: VPD
205: 메모리 컨트롤러 210: 클록
215: 네트워크 커넥터 220: 버스
225: 유저 인터페이스 230: 입/출력 엔진
305: U.2 커넥터 310: PCIe Gen3 X4 칩
315: 스토리지 320: 섀시 타입 회로
325: 모드 구성 회로 330, 335: PCIe X2
340: NVMe 405, 410: 이더넷 포트
415: NVMeoF 420: 이더넷
425: IP 430: TCP
435: RDMA 505: 미드 플레인
510, 515: 호스트

Claims (10)

  1. 스토리지 장치에 있어서:
    상기 스토리지 장치를 섀시(chassis)와 연결하는 커넥터, 상기 커넥터는 복수의 PCIe(Peripheral Component Interconnect express) 레인들 및 SAS(Serial Attached Small Computer System Interface) (SCSI) 핀들을 지원하고;
    상기 스토리지 장치를 포함하는 상기 섀시의 타입(type)을 판단하는 섀시 타입 회로; 그리고
    상기 섀시의 상기 타입에 응답하여, 제 1 모드 또는 제 2 모드를 사용하도록 상기 스토리지 장치를 구성하는 모드 구성 회로를 포함하되,
    상기 제 1 모드는, 상기 스토리지 장치와 상기 섀시 사이의 통신을 위한 NVMe(Non-Volatile Memory express) 프로토콜을 포함하고, 그리고
    상기 제 2 모드는, 상기 스토리지 장치와 상기 섀시 사이의 통신을 위한 NVMeoF(Non-Volatile Memory express over Fabric) 프로토콜을 포함하는 스토리지 장치.
  2. 제 1 항에 있어서,
    상기 섀시 타입 회로는 상기 커넥터 상의 핀 상의 신호로부터 상기 섀시의 상기 타입을 판단하도록 동작하는 스토리지 장치.
  3. 제 1 항에 있어서,
    상기 커넥터는 U.2 커넥터를 포함하는 스토리지 장치.
  4. 제 1 항에 있어서,
    상기 섀시의 상기 타입이 NVMe인 것에 적어도 부분적으로 기초하여, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 1 의 두 개의 레인들을 제 1 호스트에 대한 제 1 데이터 플레인 및 제 1 컨트롤 플레인으로 이용하고, 그리고 상기 SAS 핀들을 통한 이더넷(Ethernet) 포트의 사용을 비활성화하도록 동작하는 스토리지 장치.
  5. 제 1 항에 있어서,
    상기 섀시의 상기 타입이 NVMeoF인 것에 적어도 부분적으로 기초하여, 상기 모드 구성 회로는 상기 PCIe 레인들의 제 1의 두 개의 레인들을 제 1 호스트에 대한 제 1 컨트롤 플레인으로 이용하고, 그리고 SAS 핀들의 제 1 세트를 제 1 데이터 플레인에 대한 제 1 이더넷 포트로 사용하도록 동작하는 스토리지 장치.
  6. 제 1 항에 있어서,
    상기 섀시 타입 회로는, 상기 섀시의 상기 타입이 HA(High Availability) 섀시인지 여부를 판단하도록 동작하는 스토리지 장치.
  7. 방법에 있어서:
    섀시의 타입이 NVMe(Non-Volatile Memory Express) 섀시인지 또는 NVMeoF(Non-Volatile Memory Express over Fabrics) 섀시인지를 판단하는 단계를 포함하는, 스토리지 장치가 설치된 섀시의 타입을 판단하는 단계; 그리고
    상기 섀시의 상기 타입에 따라 상기 스토리지 장치에 대한 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 스토리지 장치를 구성하는 단계를 포함하되,
    상기 스토리지 장치는 복수의 PCIe(Peripheral Component Interconnect express) 레인들 및 SAS(Serial Attached Small Computer System Interface) (SCSI) 핀들을 지원하는 커넥터를 이용하여 상기 섀시에 연결되는 방법.
  8. 제 7 항에 있어서,
    상기 스토리지 장치가 설치된 섀시의 타입을 판단하는 단계는 상기 스토리지 장치와 연결된 상기 커넥터 상의 핀으로부터의 신호에 액세스하는 단계를 포함하되, 상기 핀은 상기 커넥터 상의 복수의 별개의 핀들 중 하나인 방법.
  9. 제 7 항에 있어서,
    상기 섀시의 상기 타입에 따라 상기 스토리지 장치에 대한 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 스토리지 장치를 구성하는 단계는, 상기 섀시의 타입이 NVMe 섀시인 것에 적어도 부분적으로 기초하여:
    PCIe(Peripheral Component Interconnect Express) 버스 내의 두 개의 레인들을 제 1 호스트에 대해 제 1 데이터 플레인 및 제 1 컨트롤 플레인으로 이용하도록 상기 장치를 활성화하는 단계; 그리고
    상기 스토리지 장치가 상기 제 1 호스트에 대한 상기 장치 상의 이더넷 포트를 사용하지 못하도록 비활성화하는 단계를 포함하는 방법.
  10. 논 트랜지토리(Non-Transitory) 명령들을 저장하는 유형의 스토리지 매체(tangible storage medium)를 포함하는 장치에 있어서, 상기 논 트랜지토리 명령들은 머신에 의해 실행될 때:
    섀시의 타입이 NVMEe(Non-Volatile Memory Express) 섀시인지 또는 NVMeoF(Non-Volatile Memory Express over Fabrics) 섀시인지 판단하는 단계를 포함하는, 스토리지 장치가 설치된 섀시의 타입을 판단하는 단계; 그리고
    상기 섀시의 상기 타입에 따라, 상기 스토리지 장치에 대해 제 1 통신 매커니즘을 활성화하고 제 2 통신 매커니즘을 비활성화하도록 상기 스토리지 장치를 구성하는 단계를 야기하되,
    상기 스토리지 장치는 복수의 PCIe(Peripheral Component Interconnect express) 레인들 및 SAS(Serial Attached Small Computer System Interface) (SCSI) 핀들을 지원하는 커넥터를 이용하여 상기 섀시에 연결되는 장치.
KR1020170058870A 2016-07-26 2017-05-11 멀티-모드 장치 및 그것의 동작 방법 KR102155659B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200114422A KR102262541B1 (ko) 2016-07-26 2020-09-08 멀티-모드 장치 및 그것의 동작 방법

Applications Claiming Priority (20)

Application Number Priority Date Filing Date Title
US201662366622P 2016-07-26 2016-07-26
US62/366,622 2016-07-26
US15/256,495 US20180032471A1 (en) 2016-07-26 2016-09-02 Self-configuring ssd multi-protocol support in host-less environment
US15/256,495 2016-09-02
US201662394726P 2016-09-14 2016-09-14
US201662394727P 2016-09-14 2016-09-14
US62/394,726 2016-09-14
US62/394,727 2016-09-14
US15/345,509 2016-11-07
US15/345,507 US10346041B2 (en) 2016-09-14 2016-11-07 Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US15/345,509 US11461258B2 (en) 2016-09-14 2016-11-07 Self-configuring baseboard management controller (BMC)
US15/345,507 2016-11-07
US201662420355P 2016-11-10 2016-11-10
US62/420,355 2016-11-10
US201662426422P 2016-11-25 2016-11-25
US62/426,422 2016-11-25
US15/403,088 US10210123B2 (en) 2016-07-26 2017-01-10 System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US15/403,088 2017-01-10
US15/411,962 2017-01-20
US15/411,962 US10372659B2 (en) 2016-07-26 2017-01-20 Multi-mode NMVE over fabrics devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200114422A Division KR102262541B1 (ko) 2016-07-26 2020-09-08 멀티-모드 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180012191A KR20180012191A (ko) 2018-02-05
KR102155659B1 true KR102155659B1 (ko) 2020-09-14

Family

ID=61224804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170058870A KR102155659B1 (ko) 2016-07-26 2017-05-11 멀티-모드 장치 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102155659B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521378B2 (en) * 2018-03-09 2019-12-31 Samsung Electronics Co., Ltd. Adaptive interface storage device with multiple storage protocols including NVME and NVME over fabrics storage devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014209764A1 (en) 2013-06-26 2014-12-31 Cnex Labs, Inc. Nvm express controller for remote memory access

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295567B1 (en) * 1998-01-26 2001-09-25 Dell Usa, L.P. Chassis type determination in an electronic system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014209764A1 (en) 2013-06-26 2014-12-31 Cnex Labs, Inc. Nvm express controller for remote memory access

Also Published As

Publication number Publication date
KR20180012191A (ko) 2018-02-05

Similar Documents

Publication Publication Date Title
US11126583B2 (en) Multi-mode NMVe over fabrics devices
US11989413B2 (en) Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US11983129B2 (en) Self-configuring baseboard management controller (BMC)
KR20180012181A (ko) 호스트 없는 환경에서 멀티 프로토콜을 지원하는 셀프-구성 에스에스디
KR20180071941A (ko) 관리 컨트롤러 및 관리 컨트롤러를 포함하는 섀시의 동작 방법
KR102155659B1 (ko) 멀티-모드 장치 및 그것의 동작 방법
KR102407210B1 (ko) 멀티-모드 장치 및 그것의 동작 방법
US11983138B2 (en) Self-configuring SSD multi-protocol support in host-less environment
US20230325343A1 (en) Self-configuring ssd multi-protocol support in host-less environment
US20200257648A1 (en) Self-configuring ssd multi-protocol support in host-less environment
US20240184447A1 (en) Method for using bmc as proxy nvmeof discovery controller to provide nvm subsystems to host

Legal Events

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