KR20180108417A - Can 버스 또는 smbus 인터페이스를 지원하는 멀티-모드 nvme 오버 패브릭 장치 - Google Patents

Can 버스 또는 smbus 인터페이스를 지원하는 멀티-모드 nvme 오버 패브릭 장치 Download PDF

Info

Publication number
KR20180108417A
KR20180108417A KR1020180010098A KR20180010098A KR20180108417A KR 20180108417 A KR20180108417 A KR 20180108417A KR 1020180010098 A KR1020180010098 A KR 1020180010098A KR 20180010098 A KR20180010098 A KR 20180010098A KR 20180108417 A KR20180108417 A KR 20180108417A
Authority
KR
South Korea
Prior art keywords
memory device
nvme
smbus
communicate
external devices
Prior art date
Application number
KR1020180010098A
Other languages
English (en)
Other versions
KR102267483B1 (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 KR20180108417A publication Critical patent/KR20180108417A/ko
Application granted granted Critical
Publication of KR102267483B1 publication Critical patent/KR102267483B1/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/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
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • 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/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

메모리 장치는 하나 이상의 외부 장치들과 통신하도록 구성되며, 상기 메모리 장치는 하나 이상의 외부 장치들과 통신하기 위해 2개 이상의 서로 다른 통신 프로토콜들 중 어느 것을 사용하는 지를 결정하기 위한 설정가능한 비트 또는 모드 선택 핀을 포함하며, 상기 2개 이상의 서로 다른 통신 프로토콜들은 적어도 CAN(Controller Area Network) 및 SMBus(System Management Bus) 를 포함한다.

Description

CAN 버스 또는 SMBUS 인터페이스를 지원하는 멀티-모드 NVME 오버 패브릭 장치{MULTI-MODE NVME OVER FABRICS DEVICE FOR SUPPORTING CAN (CONTROLLER AREA NETWORK) BUS OR SMBUS INTERFACE}
본 발명은 메모리 장치들 및 메모리 장치 통신에 관한 것이다.
NVMe-oF(Non-volatile memory over Fabrics)는 새로운 파괴적인 산업 표준이다. 적용된 폼 팩터는 2.5 " SFF(small form factor)를 기반으로 할 수 있지만 NVMe-oF 표준은 폼 팩터(form factor)를 지정하지 않는다. 즉, 폼 팩터는 표준 SSD(solid state drive)/HDD(hard disk drive) 폼 팩터(예를 들면, 2.5 " 및 3.5" 폼 팩터)와 유사할 수 있다. NVMe-oF 장치들은 주로 엔터프라이즈 또는 데이터 센터 제품들에서 사용하도록 설계되었다. 그러나 기존 산업 표준은 현재 머신 러닝 애플리케이션들(machine learning applications) 또는 데이터 마이닝 애플리케이션들(data mining applications)과 같은 특정 애플리케이션들을 위한 SSD들을 구현하거나 최적화하는 방법을 다루지 못한다. 또한 다양한 메모리 장치들을 사용할 때, 고객들은 서로 다른 공급 업체들의 서로 다른 메모리 드라이브들을 사용할 수 있다. 따라서, 서로 다른 메모리 드라이브들은 서로 다른 NAND 프로파일들(profiles)을 가질 수 있다.
이더넷(Ethernet) SSD(eSSD) 기술은 계속해서 발전되고 있다. eSSD 기술의 구현은 표준 연결들과 인터페이스 프로토콜들을 사용할 수 있다. eSSD 기술은 통신 동작들을 위해, 관리 용이성 및 다른 기능성에 대해 정의된 시스템 관리 버스(system management bus, SMBus)를 사용할 수 있다. 그러나 SMBus는 경량 통신을 위한 싱글-엔드형(single-ended) 단순 2 선(two-wire) 버스이며, 일반적으로 비교적 짧은 거리에서 간단한 통신에 사용된다(예를 들면, 컴퓨터 켜기 또는 끄기를 위한 명령들과 관련하여 전원과 통신하기 위한 컴퓨터 마더 보드에서). 즉, SMBus 기술은 상대적으로 가까운(예를 들면: 속도에 따라 2 ~ 3 피트 미만) 두 개의 종단 점들 사이에서 통신이 이루어지는 경우에만 동작 가능하다. 따라서 SMBus 기술은 더 먼 거리에서 통신이 필요한 특정 기술들에는 적용할 수 없다. 예를 들어, 센서들과 자동차의 컴퓨터/프로세서 간의 효과적인 통신을 위해서는 10m 또는 그 이상의 길이로 연장되는 통신 링크들이 사용될 수 있다.
SMBus 기술과 대조적으로, CAN(Controller Area Network)은 노드들로 불리울 수 있는 ECU들(Electronic Control Units)(예를 들면, 시스템들 및 센서들)을 연결하기 위한 전자 버스 라인을 사용하는 다중-마스터(multi-master) 직렬 버스 표준 프로토콜로, 종래의 멀티-와이어 직기(multi-wire looms)를 대체한다. 통신을 위해 두 개 이상의 노드들이 CAN 네트워크 상에 필요하며, 노드들은 2-선 버스를 통해 서로 연결된다. 와이어는 120ohm의 트위스트 와이어 쌍이다. 노드의 복잡성은 간단한 I/O 장치에서부터 CAN 인터페이스를 포함하며 정교한 소프트웨어를 내장한 임베디드 컴퓨터/프로세서까지 다양하다. 또한 노드는 표준 컴퓨터가 USB 또는 이더넷 포트를 통해 CAN 네트워크 상의 장치들과 통신하는 것을 허용하는 게이트웨이 일 수 있다.
CAN은 자동차 및 항공 우주 산업 분야들에 빠르게 적용되어 왔는데, 이는 PCI-e(Peripheral Component Interconnect Express) 버스들과 같은 대체 제품들이 더 비싸고, 자동차 및 항공 우주 운영 환경에서 경험할 수 있는 특정 조건들 하에서는 수용 가능한 방식으로 작동하지 않을 수 있기 때문이다. CAN은 자동차 구성 요소들이 최대 1Mbps의 데이터 속도로 단일 또는 이중 와이어 네트워크 데이터 버스에서 안정적으로 통신할 수 있도록 한다.
전기 자동차들 및 자율 주행 자동차들과 같은 자동차 및 항공 우주 산업에서의 데이터 사용 및 전자 컨텐츠들은 급속히 증가하고 있다. 따라서 자동차 및 항공 우주 시장을 모두 지원할 수 있는 차세대 eSSD(예를 들면, NVMe-OF(Non-Volatile Memory Express Over Fabrics) 장치들에 대한 시장 요구가 있을 수 있다.
본 발명의 목적은 하나 이상의 통신 프로토콜들과 통신을 수행할 수 있는 메모리 장치를 제공하는데 있다.
일부 실시예들은 하나 이상의 통신 프로토콜들과 통신을 수행할 수 있는 메모리 장치를 제공한다.
일부 실시예들에 따르면, 하나 이상의 외부 장치들과 통신하도록 구성된 메모리 장치는, 상기 메모리 장치가 하나 이상의 외부 장치들과 통신하기 위해 2개 이상의 서로 다른 통신 프로토콜들 중 어느 것을 사용하는 지를 결정하기 위한 설정가능한 비트 또는 모드 선택 핀을 포함하며, 상기 2개 이상의 서로 다른 통신 프로토콜은 적어도 CAN(Controller Area Network) 및 SMBus(System Management Bus)를 포함한다.
상기 메모리 장치는 eSSD(Ethernet solid state drive) 또는 NVMe-oF(non-volatile memory over Fabrics (NVMe-oF)를 더 포함할 수 있다.
상기 메모리 장치는, 상기 메모리 장치가 상기 하나 이상의 외부 장치들과 통신하기 위해 사용하는 상기 2개 이상의 서로 다른 통신 프로토콜들 중 어느 하나를 선택하기 위한 상기 설정가능한 비트 또는 상기 모드 선택 핀에 의해 제어되는 멀티플렉서(MUX)를 더 포함할 수 있다.
상기 메모리 장치는 상기 하나 이상의 외부 장치들과 연결하기 위한 U.2 커넥터를 사용하도록 구성될 수 있다.
상기 설정가능한 비트 또는 상기 모드 선택 핀은 상기 U.2 커넥터의 핀에서 설정될 수 있다.
상기 U.2 커넥터는 SMBus 프로토콜 또는 CAN(Controller Area Network) 프로토콜 통신들 중 하나를 수신하기 위해 재설정될 수 있는 2개의 핀들을 포함할 수 있다.
상기 모드 선택 핀은 벤더 예약 핀을 포함할 수 있다.
상기 설정가능한 비트는 상기 메모리 장치에 의해서 셀프-구성동안 설정되도록 구성될 수 있다.
상기 메모리 장치는 미드-플레인을 통해 상기 하나 이상의 외부 장치들과 통신하도록 구성될 수 있다.
본 발명의 일부 실시예들에 따르면, 메모리 시스템은 하나 이상의 외부 장치들, 및 상기 하나 이상의 외부 장치들과 통신하도록 구성된 메모리 장치를 포함한다. 상기 메모리 장치는 2개 이상의 서로 다른 통신 프로토콜들 중 어느 것을 상기 메모리 장치와 상기 하나 이상의 외부 장치들 사이에서 사용하는 지를 결정하기 위한 설정가능한 비트 또는 모드 선택 핀을 포함한다. 상기 2개 이상의 서로 다른 통신 프로토콜들은 적어도 CAN(Controller Area Network) 및 SMBus(System Management Bus) 를 포함한다.
상기 메모리 장치는 eSSD(Ethernet solid state drive)를 포함할 수 있다.
상기 메모리 장치는, 상기 메모리 장치가 상기 하나 이상의 외부 장치들과 통신하기 위해 사용하는 상기 2개 이상의 서로 다른 통신 프로토콜들 중 어느 하나를 선택하기 위한 상기 설정가능한 비트 또는 상기 모드 선택 핀에 의해 제어되는 멀티플렉서를 더 포함할 수 있다.
상기 메모리 시스템은 상기 하나 이상의 외부 장치들과 연결하기 위한 U.2 커넥터를 사용하도록 구성될 수 있다.
상기 설정가능한 비트 또는 상기 모드 선택 핀은 상기 U.2 커넥터의 핀에서 설정될 수 있다.
상기 모드 선택 핀은 벤더 예약 핀을 포함할 수 있다.
상기 U.2 커넥터는 SMBus 프로토콜 또는 CAN(Controller Area Network) 프로토콜 통신들 중 하나를 수신하기 위해 재설정될 수 있는 2개의 핀들을 포함할 수 있다.
상기 설정가능한 비트는 상기 메모리 장치에 의해서 셀프-구성동안 설정되도록 구성될 수 있다.
상기 메모리 시스템은, 상기 메모리 장치가 상기 하나 이상의 외부 장치들과 통신하는 것을 인에이블하기 위해 상기 메모리 장치와 상기 하나 이상의 외부 장치들 사이의 미드-플레인을 더 포함할 수 있다.
본 발명의 일부 실시예들에 따르면, 외부 장치와의 통신을 위해 메모리 장치에서 사용될 적어도 2개 이상의 서로 다른 통신 프로토콜들 중 하나를 선택하기 위한 방법이 제공되며, 상기 방법은 상기 메모리 장치의 모드 선택 핀의 전압을 제공하거나 또는 상기 메모리 장치의 비트를 설정하는 것에 의해서 모드를 선택하는 단계, 및 상기 선택된 모드에 따라서 상기 메모리 장치의 핀들을 통해 상기 외부 장치와 통신하는 단계를 포함한다.
상기 모드를 선택하는 단계는 상기 통신 프로토콜을 위해 CAN을 사용하기 위한 특정 모드를 선택하는 단계 및 상기 메모리 장치의 상기 핀들을 SMBus 핀들로 사용해서 상기 메모리 장치와 상기 다른 전자 장치 사이의 CAN 통신을 수행하는 단계를 포함할 수 있다.
따라서, 상기 메모리 장치가 통신 프로토콜들 사이의 토글링을 위한 모드 선택 핀을 포함하기 때문에, 상기 메모리 장치는 중요한 실시간 통신이 중단되지 않도록 하면서 자동차 환경에서 효과적으로 통신할 수 있다.
본 발명의 메모리 장치는 통신 프로토콜들 사이의 토글링을 위한 모드 선택 핀을 포함하기 때문에, 메모리 장치는 중요한 실시간 통신이 중단되지 않도록 하면서 자동차 환경에서 효과적으로 통신할 수 있다.
일부 실시예들은 첨부된 도면들과 함께 다음의 설명으로부터 보다 상세히 이해될 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 메모리 시스템의 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 메모리 장치를 포함하는 메모리 시스템의 블록도이다.
본 발명의 개념 및 그 실시 방법의 특징들은 다음의 실시예들 및 첨부 도면들의 상세한 설명을 참조하면 보다 쉽게 이해될 수 있다. 이하, 첨부된 도면들을 참조하여 실시예들은 상세히 설명될 것이며, 동일한 참조 번호는 동일한 요소를 지칭한다. 그러나, 본 발명은 다양한 형태들로 구체화될 수 있으며, 여기에 도시된 실시예들에만 한정되는 것으로 해석되어서는 안된다. 오히려, 이들 실시예들은 본 개시들이 철저하고 완전하게 이루어 지도록 당업자에게 본 발명의 양상들 및 특징들을 충분히 전달할 수 있도록 예로서 제공된다. 따라서, 본 발명의 양상들 및 특징들의 완전한 이해를 위해 당업자에게 불필요한 프로세스들, 요소들, 및 기술들은 설명되지 않을 수 있다. 다른 언급이 없는 한, 첨부된 도면들 및 상세한 설명 전반에 걸쳐 동일한 참조 부호들은 동일한 요소들을 나타내며, 따라서 그 설명은 반복되지 않을 수 있다. 도면들에서, 엘리먼트들, 층들 및 영역들의 상대적 크기들은 명확성을 위해 과장될 수 있다.
이하 설명에서, 설명의 목적으로, 많은 특정 상세들이 다양한 실시예들의 완전한 이해를 제공하기 위해 설명된다. 그러나, 다양한 실시예들이 이러한 특정 세부 사항없이 또는 하나 이상의 등가의 구성없이 실시될 수 있음은 자명하다. 다른 예들에서, 공지된 구조들 및 장치들은 불필요하게 다양한 실시예들을 모호하게 하는 것을 피하기 위해 블록도 형태로 도시된다.
"제1", "제2", "제3" 등의 용어는 본 명세서에서 다양한 구성 요소들, 엘리먼트들, 영역들, 계층들 및/또는 섹션들을 설명하기 위해 사용될 수 있지만, 이들 구성 요소들, 엘리먼트들, 영역들, 계층들 및/또는 섹션들은 이들 용어들에 의해 제한되어서는 안 된다. 이들 용어들은 하나의 요소, 엘리먼트, 영역, 층 또는 섹션을 다른 요소, 엘리먼트, 영역, 층 또는 섹션과 구별하기 위해 사용된다. 따라서, 이하에서 설명되는 제1 요소, 엘리먼트, 영역, 층 또는 섹션은 본 발명의 사상 및 범위를 벗어남이 없이 제2 요소, 엘리먼트, 영역, 계층 또는 섹션으로 지칭될 수 있다.
"아래에", "하부에", "낮은", "상부", "위에" 등과 같은 공간적으로 관련된 용어들은 본 명세서에서 설명의 편의를 위해, 하나의 엘리먼트 또는 특징과 다른 엘리먼트(들) 또는 특징(들) 간의 관계를 용이하게 설명하기 위해 사용될 수 있다. 공간적으로 관련된 용어들은 도면들에 도시된 방위에 추가하여, 사용 또는 동작 중에 장치의 상이한 방위들을 포함하도록 의도된 것으로 이해될 것이다. 예를 들어, 도면들의 장치가 뒤집힌다면, 다른 엘리먼트들 또는 특징들의 "아래" 또는 "아래에" 또는 "하부의"로 기술된 요소는 다른 엘리먼트들 또는 특징들의 "위로" 향할 것이다. 따라서, "아래" 및 "아래에"의 예시적인 용어는 위와 아래의 방향 모두를 포함할 수 있다. 장치는 다른 방향으로 향할 수 있고(예를 들어, 90도 또는 다른 방향으로 회전될 수 있음), 공간적으로 상대적인 기술 용어들은 그에 따라 해석되어야 한다.
엘리먼트 또는 계층이 다른 엘리먼트 또는 계층에 "연결된" 또는 "결합된" 것으로 언급될 때, 이는 다른 엘리먼트 또는 계층에 직접적으로 연결되거나, 결합될 수 있거나, 또는 하나 이상의 개재된 엘리먼트들 또는 계층들이 존재할 수 있다. 또한, 하나의 엘리먼트 또는 계층이 2 개의 엘리먼트들 또는 계층들의 "사이에" 있는 것으로 언급될 때, 2 개의 엘리먼트들 또는 층들 사이의 유일한 엘리먼트 또는 계층, 또는 하나 이상의 중간에 있는 엘리먼트들 또는 계층들이 존재할 수도 있다.
본 명세서의 목적들에서, "X, Y 및 Z 중 적어도 하나" 및 "X, Y 및 Z로 이루어진 그룹으로부터 선택된 적어도 하나"는 X만으로 해석될 수도 있고, Y만으로 해석될 수도 있으며, Z만, 또는 XYZ, XYY, YZ 및 ZZ와 같은 X, Y 및 Z 중 둘 이상의 임의의 조합을 포함할 수 있다. 본 명세서에서 동일한 번호는 동일한 요소를 지칭한다. 본 명세서에 사용된, "및/또는" 이라는 용어는 하나 이상의 관련 열거된 항목의 임의 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어는 특정 실시 양태를 설명하기 위한 것일 뿐 본 발명을 제한하려는 것은 아니다. 본원에서 사용된 단수 형태는 문맥 상 다르게 지시하지 않는 한 복수 형태를 포함하는 것으로 의도된다. 본 명세서에서 사용된 "포함하는", "포함된", "구비하는" 및 "구비된"의 용어는 명시된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 구성 요소들의 존재를 특정하며, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 구성 요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않음이 잘 이해할 것이다. 본 명세서에 사용된 바와 같이, "및/또는" 이라는 용어는 하나 이상의 관련 열거 된 항목의 임의 및 모든 조합을 포함한다. "적어도 하나"와 같은 표현들은 엘리먼트들 앞에서 엘리먼트들의 전체 목록을 수식하고 목록의 개별 엘리먼트들을 수식하지 않는다.
본 명세서에 사용된 바와 같이, 용어 "실질적으로", "약" 및 유사한 용어들은 근사의 용어로서 사용되며 정도(degree)의 용어로서 사용되지 않으며, 측정된 또는 계산된 값의 고유한 변화를 설명하기 위한 것이며, 이는 당업자에 의해 인식될 것이다. 또한, 본 발명의 실시예들을 설명할 때 "할 수 있다"를 사용하는 것은 "본 발명의 하나 이상의 실시예들"을 의미한다. 본 명세서에서 사용된 바와 같이, 용어 "사용하다", "사용하는" 및 "사용되는"은 "활용하다", "활용하는" 및 "활용되는"과 동의어로 간주될 수 있다. 또한 "예시적인"의 용어는 사례 또는 예시를 나타낸다.
특정 실시예가 다르게 구현될 수 있는 경우, 특정한 처리 순서는 설명된 순서와 다르게 수행될 수 있다. 예를 들어, 2 개의 연속적으로 설명된 프로세스는 실질적으로 동시에 수행되거나 설명된 순서와 반대 순서로 수행될 수 있다.
또한, 본원에 개시되고 및/또는 인용된 임의의 수치 범위는 범위 내에 포함되는 동일한 수치 정밀도의 모든 하위 범위를 포함하는 것으로 의도된다. 예를 들어, "1.0부터 10.0"의 범위는, 지정된 최소값 1.0과 지정된 최대값 10.0 사이의 모든 부분 범위들 즉, 최소값은 1.0과 같거나 크고, 그리고 최대값은 10.0과 같거나 작은 부분 범위들을 포함하는 것으로 의도된다(예를 들어, 2.4 내지 7.6과 같은). 본 발명에 인용된 최대 수치 제한들은 여기에 포함되는 모든 더 낮은 수치 제한들을 포함하도록 의도되며, 본 명세서에 인용된 임의의 최소 수치 제한은 여기에 포함되는 모든 더 높은 수치 제한을 포함하고자 한다. 따라서, 출원인은 본 명세서에 명시적으로 열거된 범위 내에 포함되는 임의의 하위 범위를 명시적으로 암시하기 위해 청구 범위를 포함하는 본 명세서를 수정할 권리를 보유한다. 이러한 모든 범위는 본 명세서에서 본질적으로 기술된다.
다양한 실시예들이 실시예 및/또는 중간 구조들의 개략도인 단면도를 참조하여 여기에 설명된다. 결과로서의 도면들의 형상들로부터의 변화는 예를 들어, 제조 기술들 및/또는 허용 오차와 같이 예상되어야 한다. 따라서, 본 명세서에 개시된 실시예들은 도시된 특정 형태들의 형상에 한정되는 것으로 해석되어서는 안되며, 예를 들어 제조 상의 형상 편차들을 포함해야 한다. 예를 들어, 직사각형으로 도시된 주입 영역은 전형적으로, 주입된 영역에서부터 주입되지 않은 영역으로의 이진 변화 라기보다는, 둥근 또는 곡선의 특성들 및/또는 모서리에서의 주입 농도의 기울기를 가질 것이다. 마찬가지로, 주입에 의해 형성된 매립 영역은 매립 영역과 주입이 일어나는 표면 사이의 영역에 약간의 주입을 초래할 수 있다. 따라서, 도면들에 도시된 영역들은 본질적으로 개략적이며, 그 형상들은 장치의 영역의 실제 형상을 예시하는 것이 아니며, 제한하려는 것은 아니다.
본 명세서에 설명된 본 발명의 실시예들에 따른 전자 또는 전기 장치들 및/또는 임의의 다른 관련 장치들 또는 구성 요소들은 임의의 적합한 하드웨어, 펌웨어(예를 들어, 주문형 집적 회로), 소프트웨어 또는 소프트웨어, 펌웨어 및 하드웨어의 조합을 이용하여 구현될 수 있다. 예를 들어, 이들 장치들의 다양한 구성 요소들은 하나의 집적 회로(IC) 칩 상에 또는 개별 IC 칩들 상에 형성될 수 있다. 또한, 이들 장치들의 다양한 구성 요소들은 플렉시블 인쇄 회로 필름, 테이프 캐리어 패키지(TCP), 인쇄 회로 기판(PCB) 또는 하나의 기판 상에 구현될 수 있다. 또한, 이들 장치의 다양한 구성 요소들은 하나 이상의 컴퓨팅 장치들 내 하나 이상의 프로세서에서 실행되고, 컴퓨터 프로그램 명령들을 실행하고, 여기에 설명된 다양한 기능들을 수행하기 위해 다른 시스템 구성 요소들과 상호 작용하는 프로세스 또는 스레드(thread)일 수 있다. 컴퓨터 프로그램 명령들은, 예를 들어 RAM(random access memory)과 같은 표준 메모리 장치를 사용하는 컴퓨팅 장치에서 구현될 수 있는 메모리에 저장된다. 컴퓨터 프로그램 명령은 또한 예를 들어 CD-ROM, 플래시 드라이브 등과 같은 다른 비일시적인 컴퓨터 판독 가능 매체에 저장될 수 있다. 또한, 당업자는 본 발명의 예시적인 실시 예들의 사상 및 범위를 벗어나지 않는 한 다양한 컴퓨팅 장치들의 기능이 단일 컴퓨팅 장치에 결합되거나 통합될 수 있으며, 또는 특정 컴퓨팅 장치의 기능이 하나 이상의 다른 컴퓨팅 장치들에 걸쳐 분산될 수 있음을 인식해야 한다.
달리 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어(기술 용어 및 과학 용어 포함)는 본 발명이 속하는 기술 분야의 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전에서 정의된 용어들과 같은 용어들은 관련 기술 및/또는 본 명세서와 관련하여 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 이상적이거나 지나치게 형식적인 의미로 해석되지 않아야 한다.
앞서 언급한 바와 같이, 자동차 환경에서, 통신 대역폭은 대략 초당 1메가비트(1mbps)이면 충분하다. 그러나, 자동차들이 더 "스마트(smarter)"하고 더 분석적이고 더 상호연결 됨에 따라 데이터 트래픽 (예를 들어, 자율 자동차에 대한)은 더 큰 대역폭을 사용할 수 있다. U.2 커넥터 또는 U.2 콘센트(receptacle)로부터의 이더넷은 초당 10 기가바이트(10gbps) 또는 표준 U.2 커넥터 핀들보다 빠르게 실행할 수 있다. 따라서, 이더넷을 사용함으로써 상당한 양의 비디오 데이터, 센서 정보 등이 장치들간에 이동될 수 있다. 그러나 eSSD 상태를 모니터링하기 위해 이더넷을 사용하는 것은 자동차 환경에서는 충분하지 않을 수 있다.
더욱이, 비록 SMBus(system management bus)를 사용한 시스템 네트워크 통신 기술이 자동차 환경과 관련된 거리에서 효과적이지 않을 수 있으나, 비교적 일반적인 인터페이스인 CAN(Controller Area Network) 통신 프로토콜은 효과적인 대안이 될 수 있다. 따라서 관리 용이성, 상태 정보 등을 위해, (예를 들어, 자동차내의) 중앙 컴퓨터/프로세서는 eSSD의 상태를 판별할 수 있고 CAN(Controller Area Network)을 통해 통신할 수 있다.
특정 애플리케이션들에서, NVMe-oF(non-volatile memory over Fabrics) 장치 또는 이더넷 SSD(eSSD)를 통한 비-휘발성 메모리와 관련된 통신은 자율 주행 차량이 차량의 센서들 및 차량의 액추에이터(actuators)(예를 들면, 브레이크) 사이에 상대적으로 즉각적인 통신을 요구하는 상황과 같은 생명을 위협하는 구현들을 가질 수 있다. 즉, 진행중인 통신들이 잠재적 사고를 피하기 위해 차량의 중앙 처리 장치에 의해 제동 또는 다른 회피 기동(evasive maneuvering)을 나타내는 센서 표시에 대한 응답일 수 있기 때문에 실시간으로 통신이 중단되는 것은 바람직하지 않을 수 있다.
또한 eSSD와의 통신은 eSSD 및 미드-플레인(mid-plane) 사이의 통신에 의해 달성될 수 있다. IT(information technology) 애플리케이션들 또는 클라우드 컴퓨팅을 위한 종래의 메모리 스토리지들에서, 거기에 사용되는 대다수의 메모리 장치들은 드라이브 베이(drive bay)에 연결된다. 그러나, 드라이브 베이는 미드-플레인 또는 백 플레인(back plane)으로 구현될 수 있으며, 이것은 컴퓨팅 및 프로세싱을 달성하기 위해 마더보드와의 다양한 연결들을 갖게 되어서 네트워크 내 레이턴시가 증가한다. 자동차의 적절한 작동(예를 들어, 충돌 회피)을 보장하기 위해 네트워크에서의 통신 속도가 중요할 수 있기 때문에, 그러한 레이턴시는 예를 들면, 자율주행 자동차에서 바람직하지 않을 수 있다.
따라서, 프로그램 가능한 멀티-모드 eSSD는 CAN의 사용에 의해 자동차 내부에서 메모리 스토리지 장치로서 효율적으로 사용될 수 있다. 더욱이, CAN은 그러한 환경에서 적합한 통신 프로토콜이 될 수 있다. 다음 설명에서, 본 개시의 실시예들은 SMBus 통신 또는 CAN 중 하나를 사용하여 외부 장치와 통신하기 위해 NVMe-oF 장치의 2개의 핀들을 사용할 수 있다. 또한 실시예들은 NVMe-oF 장치와 외부 시스템 사이의 통신을 가능하게 하기 위한 통신 프로토콜들 사이의(예를 들면, SMBus 모드 및 CAN 모드 사이의) 선택적인 스위칭을 위해 NVMe-oF 장치의 제3 핀을 사용할 수 있다. 또한, 본 개시의 실시예들은 다수의 상이한 통신 프로토콜들을 사용해서 메모리 장치와의 통신(예를 들어, 상태 모니터링)을 가능하게 하기 위해 메모리 장치의 기존 인프라(infrastructure)를 개조할 수 있다.
요약하면, 이더넷은 자동차 및 항공 우주 환경에서의 통신을 가능하게 하는데 적합하다. 불행하게도, 가장 널리 사용되는 SSD들은 관리 용이성을 위해 SMBus를 사용하며, 이는 단거리에서 발생하는 통신에 적합하다. 그러나 SMBus 기술은 매우 먼 거리에서 발생하는 환경에서의 통신 및 극한의 열악한 환경 동작 조건으로 인해 자동차 및 우주 항공 환경에서 이상적으로 작동하지 않다. 반대로 CAN 통신을 수행하는 CAN 버스는 자동차 및 우주 항공 환경에서 좋은 대안을 제공한다. 따라서, 자동차 및 항공 우주 산업은 아래에 설명되는 본 발명의 실시예에 따른 관리 용이성을 위해 사용되는 CAN 버스를 갖는 이더넷 SSD들을 이용함으로써 개선될 수 있다.
따라서, 본 개시의 실시예들은 관리 용이성(예를 들면, 센서들 체크 등)을 수행하기 위한 저비용 방법으로써 CAN 프로토콜을 사용할 수 있으며, 실시간 민감 정보를 방해함이 없이 SMBus 프로토콜을 사용하여 드라이브에 관한 스마트 정보를 모니터 할 수 있다. 또한, 본 개시의 실시예들은 NVMe-oF SSD들에 CAN 인터페이스 지원을 제공함으로써 자동차 및 우주 산업에 의해서 시장 채택을 위한 접근법을 제공한다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 메모리 시스템의 블록도이고, 도 2는 본 발명의 다른 실시예에 따른 메모리 장치를 포함하는 메모리 시스템의 블록도이다.
도 1 및 도 2를 참조하면, 본 개시의 일 실시예를 구현하기 위한 NVMe-oF 장치(예를 들면, NVMe-oF SSD 또는 Essd)(110)를 포함하는 메모리 시스템(100)이 개시된다. NVMe(Non-Volatile Memory Express) 및 NVMe-oF(Non-Volatile Memory Express over Fabrics) 프로토콜들은 소프트웨어가 이더넷을 통해 통신할 수 있고 그리고 (예를 들면, 아래에 설명되는 U.2 커넥터를 통한 통신에 의해서) 새로운 버전의 PCI-e(Peripheral Component Interconnect Express) SSD들과 통신하게 할 수 있다. PCI-e는 고속 직렬 컴퓨터 확장 버스 표준이며, SATA(Serial AT Attachment) 장치들과 통신할 수 있는 AHCI(Advanced Host Controller Interface) 기술의 후속 기술이다. 따라서 NVMe 기술은 U.2, M.2 또는 PCI-Express SSD들이 SATA 장치들을 통해 적은 전력 사용을 유도하면서 성능을 향상시키게 한다.
본 실시예의 NVMe-oF 장치(110)는 커넥터(예를 들면, U.2 커넥터(120)이나, 다른 타입의 커넥터들이 사용될 수 있음)를 포함한다. U.2 커넥터(120)는 NVMe-oF 장치(110)와 미드-플레인(mid-plane, 130)의 통신을 가능하게 해서 하나 이상의 스위치들 또는 컨트롤러들(141, 142)과의 통신을 가능하게 한다. 앞서 설명에서, NVMe 및 NVMe-oF 장치들은 U.2 커넥터들을 통한 SMBus 통신들만을 허용하지만, 동일한 커넥터들을 통한 CAN 통신들은 허용하지 않는다. 그러나 본 발명의 NVMe-oF 장치(110)는, 다음의 설명될 커넥터(120) 상에 기존의 핀들(123, 124)을 변경해서 NVMe-oF 장치(110)가 CAN 또는 SMBus 중 하나를 통해 통신하는 것을 가능하게 한다.
NVMe-oF 장치(110)는, NVMe-oF 장치(110)로부터 미드-플레인(130)을 거쳐 하나 이상의 컨트롤러들(141, 142) 각각과 통신하기 위해 하나 이상의 내부 이더넷 포트들(161, 162)(예를 들면, NVMe-oF 장치(110)의 내부에 있는 이더넷 포트들)을 통해 NVMe-oF 장치(110) 상의 U.2 커넥터(120)를 통해 통신할 수 있다. 또한, NVMe-oF 장치(110)는 하나 이상의 컨트롤러들(141, 142) 각각과 통신하기 위해 하나 이상의 내부 링크들(171, 172)을 통해(예를 들면, NVMe-oF 장치(110) 내부에 있고, NVMe-oF 장치(110)의 호스트와 연결된 PCI-e X2 링크들의 사용에 의해서) U.2 커넥터(120)와 통신할 수 있다 .
더욱이, NVMe-oF 장치(110)가 하나 이상의 컨트롤러들(141, 142)과의 통신을 가능하게 하기 위해 , NVMe-oF 장치(110)는 내부 이더넷 포트들(161, 162)에 각각 대응하는 하나 이상의 외부 이더넷 포트들(181, 182)(예를 들면, NVMe-oF 장치(110)의 외부에 있는 이더넷 포트들)을 경유하여 U.2 커넥터(120) 및 미드-플레인(130)을 통해 통신할 수 있다. 따라서, 외부 이더넷 포트들(181, 182)은 내부 이더넷 포트들(161, 162)과의 연결을 통해 NVMe-oF 장치(110)와 연결될 수 있다. 또한 U.2 커넥터(120)는 하나 이상의 외부 링크들(예를 들면, NVMe-oF 장치(110)의 외부에 있는 외부 PCI-e X2 링크들(191, 192))을 통해 미드-플레인(130)을 경유하여 통신할 수 있다.
따라서, 앞서 설명된 바와 같이, NVMe-oF 장치(110)는, NVMe-oF 장치(110)에 위치한 U.2 커넥터(120)를 통한 라우팅 통신들에 의해 PCI-e 또는 이더넷 기술을 사용해서 미드-플레인(130)을 경유하여 하나 이상의 컨트롤러들(141, 142)로/로부터 통신 신호들을 전송/수신할 수 있다.
예를 들어, NVMe-oF 장치(110)와 미드-플레인(130) 사이의 이더넷 통신은 SAS 핀들(즉, Serial Attached SCSI(Small Computer System Interface) 핀들)을 통해 달성될 수 있다. 따라서, eSSD일 수 있는 NVMe-oF 장치(110)는, U.2 커넥터(120)와 연결되는 미드-플레인 상의 슬롯에 삽입되어서 NVMe-oF 장치(110)와 미드-플레인(130) 사이의 통신을 가능하게 할 수 있다. 또한, 외부 PCI-e X2 링크들(191, 192)은 일부 모드들에서 미드-플레인(130)과 NVMe-oF 장치(110) 사이의 통신을 가능하게 할 수 있다.
미드-플레인(130)은 외부 이더넷 포트들(181, 182)에 각각 대응하는 하나 이상의 이더넷 커넥션들(143, 144) 또는 외부 PCI-e X2 링크들(191, 192)에 각각 대응하는 PCI-e X2 링크들(145, 146)(예를 들면, 컨트롤러들(141, 142)에 각각 대응하는 하나의 이더넷 커넥션 및 하나의 PCI-e 링크)을 통해 하나 이상의 컨트롤러들(141, 142)과 통신할 수 있다. 예를 들어, 이더넷 커넥션들 중 하나(143)는 데이터 경로로 사용될 수 있고, 이더넷 커넥션들 중 다른 하나(144)는 제어 경로로 사용될 수 있거나 NVMe-oF 장치(110)의 관리 용이성을 위해 사용될 수 있다.
더욱이, NVMe-oF 장치(110)는 하나 이상의 관리 컴포넌트들(MGMT, 126) 또는 하나 이상의 센서들(128) 또는 다른 컨트롤러들과 통신할 수 있다. NVMe-oF 장치(110)는 그러한 통신들을 기존의 핀들(123, 124)을 통해 U.2 커넥터(120)를 거쳐 수행할 수 있다. 비록 SMBus 프로토콜이 관리 컴포넌트들(126)과의 통신에 사용될 수 있다 하더라도, NVMe-oF 장치(110)는 U.2 커넥터를 거쳐 CAN 버스를 통해 센서들(128) 또는 다른 컨트롤러들과의 통신을 위해 CAN 프로토콜을 사용할 수 있다.
비록 본 실시예는 CAN 프로토콜이 인에이블 되거나 또는 SMBus 모드가 인에이블 되든 미드-플레인(130)과 통신하는 것을 도시하나, 다른 실시예들에서, 실시예가 적용되는 대응하는 환경의 공간 및 네트워킹 제한들에 따라서(예를 들면, 자동차 환경에서, 도 2에 도시된 메모리 시스템(200)과 같이, CAN 통신은 사용되고, 미드-플레인은 존재하지 않을 때) 외부 이더넷 포트들(181, 182) 및 외부 PCI-e 링크들(191, 192)은 미드-플레인(130)을 바이패스하거나 또는 미드-플레인(130)을 사용하지 않을 수 있다. 따라서 본 발명에 따른 eSSD는 데이터센터 환경에서 사용될 수 있는 것과 같이, 자동차 환경에서 용이하게 사용될 수 있다.
도 2에서 알 수 있는 바와 같이, 미드-플레인(130)이 생략될 때 PCI-e 링크들(145, 146) 및 이더넷 커넥션들(143, 144)도 생략될 수 있고, 더 가벼운 애그리게이터(aggregator) 미드-플레인(133)으로 교체될 수 있다. 애그리게이터 미드-플레인(133)은 더욱 제한된 팬-아웃(fan-out) 능력을 가지고특정 출력과 연결될 수 있는 더 적은 수의 입력들을 포함한다는 점에서 도 1에 도시된 실시예의 미드-플레인(130)과는 다르다. 예를 들어, 많은 수의 개별 장치들로 대용량 데이터를 전송할 수 있는 데이터센터들에서 사용될 수 있는 도 1의 실시예의 미드-플레인(130)과 달리, 도 2에 도시된 실시예의 애그리게이터 미드-플레인(133)은 단순한 물리적 어댑터일 정도로 상대적으로 작을 수 있다. 즉, 애그리게이터 미드-플레인(133)은 장치에 대한 모든 이더넷 및 PCI-e 물리적 커넥션들을 적절한 U.2 핀들로 효과적으로 제공할 수 있다. 본 개시의 일부 실시예들에서, 간단하고 작은 ASIC은 애그리게이터 미드-플레인(133)을 동작시켜 통신을 가능하게 하는데 충분할 것이다. 따라서, 하나 이상의 컨트롤러들(141, 142)은 외부 PCI-e X2 링크들(191, 192) 및 외부 이더넷 포트들(181, 182)을 통해 U.2 커넥터(120)에 직접 접속될 수 있다.
다른 실시예들에서, 미드-플레인(130) 및 애그리게이터 미드-플레인(133)은 모두 없을 수 있음에 주의해야 한다(예를 들면, NVMe-oF 장치(10)의 단일 eSSD 만을 컨트롤러들 중 제1 컨트롤러(141)와 같은 단일 외부 장치에 연결할 때).
또한, 도 1에 도시된 실시예와 같이, NVMe-oF 장치(110)는 SMBus 프로토콜 또는 CAN 프로토콜 중 하나를 사용하여 U.2 커넥터(120) 상의 이미 존재하는 핀들(123, 124)을 통해 컴포넌트들(126) 및 센서들(128) 또는 다른 컨트롤러들과 통신할 수 있다. 본 실시예에서, NVMe-oF 장치(110)는 SMBus 프로토콜을 사용하여 관리 컴포넌트들(126)과 통신할 수 있고, CAN 프로토콜을 사용하여 센서들(128)과 통신할 수 있다. 예를 들어, 핀들 중 하나(123)는 관리 컴포넌트들(126) 또는 센서들(128)로 트랜스미션들(transmissions)을 전송하기 위해 사용될 수 있으며, 핀들 중 다른 하나(124)는 관리 컴포넌트들(126) 또는 센서들(128)로부터 트랜스미션을 수신하기 위해 사용될 수 있다.
도 1 및 도 2에 도시된 실시예들의 NVMe-oF 장치(110)는 장치가 SMBus 프로토콜을 사용하여 동작하는지 아니면 CAN 프로토콜을 사용하여 동작하는지 선택하기 위한 모드 선택 핀/설정가능한 비트(mode select pin/configurable bit, 106)를 더 포함한다. 모드 선택 핀/설정가능한 비트(106)는 U.2 커넥터(120)의 핀일 수 있다. 따라서, NVMe-oF 장치(110)는 SMBus 프로토콜 또는 CAN 프로토콜 중 하나를 사용하여 하나 이상의 컨트롤러들(141, 142)과 통신하는 것을 선택할 수 있다. NVMe-oF 장치(110)는 NVMe-oF 장치(110)의 U.2 커넥터 상의 기존의 SMBus 핀들(123, 124)(예를 들면, 핀들(E23, E24)을 사용하여 통신할 수 있으며, SMBus 핀들(123, 124)과 연결되고, 임의의 CAN 가능 장치와 연결될 수 있는 120-ohm 케이블을 포함할 수 있다(예를 들면, 본 실시예가 적용된 자동차의 전자 컨트롤러는 본 실시예의 컨트롤러들(141, 142) 중 하나가 될 수 있다). 모드 선택 핀/설정가능한 비트(106)는 U.2 커넥터 상의 핀이거나(예를 들면, 벤더 예약 핀(E6) 또는 NVMe-oF 장치(110)의 핀(S15)) 또는 장치 셀프-구성 동안 VPD의 일부로서 설정될 수 있는 설정가능한 핀일 수 있다. 따라서, 동일한 NVMe-oF 장치(110)는 수정없이 IT 애플리케이션들에서뿐만 아니라 자동차 또는 항공 우주 애플리케이션들에서 사용될 수 있다.
본 실시예에서, NVMe-oF 장치(110)는 모드 선택 핀(106)에 따라서 제어되는 멀티플렉서(MUX, 108)를 더 포함하여, 핀들(123, 124)를 통해 CAN 또는 SMBus와 통신할 수 있다. 따라서, 멀티플렉서(108)는 2개 이상의 서로 다른 프로토콜 엔진들에 연결될 수 있고, 모드 선택 핀(106)에 제공되는 전압에 근거해서(또는 대응하는 설정 가능한 비트(106)의 비트 값에 근거해서)'멀티플렉서(108)는 2개 이상의 서로 다른 프로토콜 엔진들에 연결될 수 있고, 모드 선택 핀(106)에 제공되는 전압에 근거해서(또는 대응하는 설정 가능한 비트(106)의 비트 값에 근거해서) NVMe-oF 장치(110)는 SMBus 또는 CAN 프로토콜 중 하나를 사용해서 통신한다. 다른 실시예들에서, 멀티플렉서(108)는 생략될 수 있으며, NVMe-oF 장치(110)는 전용 CAN 채널 뿐만 아니라 전용 SMBus 채널을사용할 수 있고, 따라서 NVMe-oF 장치(110)가 SMBus 통신 및 CAN 통신 모두에 동시에 관여하는 것을 가능하게 한다.
일 실시예에서, 모드 선택 핀(106)은(다른 실시예들에서, 설정가능한 비트로 구현될 수 있음) 노말 모드로 구동될 수 있도록 로우로 설정되어서, SMBus 통신 프로토콜이 구현될 수 있다. 모드 선택 핀(106)이 하이로 구동될 때, NVMe-oF 장치(110)와 외부 장치(예를 들면, 컨트롤러들(141, 142) 중 하나 또는 NVMe-oF 장치(110)와 연결된 컴퓨터/프로세서) 사이의 통신을 위한 CAN 프로토콜이 사용되도록 특정 모드가 설정될 수 있다. 따라서, 일부 실시예들에서, 2개의 사전 지정된 SMBus 핀들(123, 124)(예를 들면, SMBus 핀들(E23, E24)은 CAN 인터페이스를 위해 사용될 수 있다. 즉, 만일 모드 선택 핀(106)을 사용하여 CAN 모드가 선택되면, 2개의 사전 정의된 SMBus 핀들(123, 124)은 CAN 인터페이스를 위해 사용될 수 있다(예를 들면, 전송(Tx)을 위한 하나의 핀(123) 및 수신(Rx)을 위한 다른 하나의 핀(124)).
상술한 실시예들에 따르면, 기존의 NVMe 미드-플레인(130) 및 기존의 커넥터들(120)은 새로운 핀들을 부가하는 재설계 없이 NVMe-oF 장치(110)와 함께 사용될 수 있다. 더욱이, NVMe-oF 장치(110)는 모든 표준 특징들 및 애플리케이션들에 대해서 이더넷, PCI-e X2 및 CAN을 통해 데이터를 전송할 수 있고, 효과적으로 어떤 SSD도 CAN 또는 SMBus를 사용하여 통신할 수 있게 한다. 이것은 미드-플레인(130)이 생략되거나 그것의 능력 내에서 크게 감소될 수 있기 때문에 자동차 환경에서 장점을 제공할 수 있다. 즉, 자동차 환경 내 NVMe-oF 장치(110)는 PCI-e 링크들(145, 146, 191, 192)를 생략할 수 있고, 오직 이더넷 만을 사용하여 하나 이상의 컨트롤러들(141, 142)과의 통신을 가능하게 선택할 수 있다. 즉, 자동차 환경에서 사용된 본 발명의 실시예에서, NVMe-oF 장치(110)(예를 들면, eSSD)의 메모리 드라이버는 이더넷 또는 CAN을 통해 통신하도록 하나 이상의 컨트롤러들(141, 142)에 직접 연결될 수 있고, CAN 통신들을 통해 다양한 자동차 모니터링 컴포넌트들과 직접 인터페이스 할 수 있다.
더욱이, 동일한 NVMe-oF 장치(110)가 IT 산업, 자동차 산업 또는 우주 항공 산업 분야에서 사용될 수 있기 때문에, 제조 비용은 규모의 경제로 인해 NVMe-oF 장치(110)의 단위당 더 낮아질 수 있다. 즉, NVMe-oF 장치(110)의 다용도 성은 다중 제품들/섀시에서의 사용을 가능하게 하며, 이는 NVMe-oF 장치(110)가 모든 기능을 갖춘 컨트롤러들 및 미드-플레인들을 포함하는 데이터센터에서 사용될 수 있고, 또한 감소된 능력의 최소 미드-플레인을 가지거나 미드-플레인을 전혀 갖지 않은 자동차들 내에서 사용될 수 있음을 의미한다. 또한, NVMe-oF 장치(110)는 표준 인터페이스(예를 들어, 커넥터(120))를 사용할 수 있고 관리 의무를 위해 예약된 SMBus를 사용할 수 있다. 또한, 본 발명의 실시예들은 FPGA (Field Programmable Gate Array)를 이용하여 구현될 수 있으며, 이에 따라 대응하는 마이크로 칩을 기반으로 한 특수 컴퓨팅이 가능하며, 그리고 애플리케이션에 따라 CPU의 성능이 달라질 수 있다.
따라서, 본 실시예들을 채용한 스토리지 장치들은 자동차 및 항공 우주 산업들뿐만 아니라 IT에서 사용될 수 있다. 설명된 실시예들에 따르면, 표준 NVMe-oF SSD는 표준 U.2 커넥터 상에서CAN(Controller Area Network) 지원을 제공함으로써 자동차 산업을 지원하도록 개조될 수 있다. 통신 프로토콜들 사이의 토글링을 위해 모드 선택 핀을 사용함으로써, 메모리 장치는 중요한 실시간 통신이 중단되지 않도록 하면서 자동차 환경에서 효과적으로 통신할 수 있다.
상술한 내용은 일부 실시예들을 설명하기 위한 것으로서, 본 발명을 한정하는 것으로 해석되어서는 안된다. 몇몇 일부 실시예들이 설명되었지만, 당업자는 본 발명 개념의 신규한 교시 및 이점으로부터 실질적으로 벗어나지 않으면서 몇몇 실시예들에서 많은 수정이 가능하다는 것을 용이하게 이해할 것이다. 따라서, 그러한 모든 수정들은 청구 범위에 정의된 본 발명의 개념의 범위 내에 포함되도록 의도된다. 따라서, 상술한 내용은 다양한 실시예들을 예시하고 개시된 특정 실시예들에 한정되는 것으로 해석되어서는 안되며, 개시된 일부 실시예들뿐만 아니라 다른 일부 실시예들에 대한 수정은 첨부된 청구 범위 및 그 등가물의 범위 내에 포함된다.
110: NVMe-oF 장치
120: U.2 커넥터
130: 미드-플레인
141, 142: 컨트롤러

Claims (10)

  1. 하나 이상의 외부 장치들과 통신하는 메모리 장치에 있어서:
    상기 메모리 장치가 하나 이상의 외부 장치들과 통신하기 위해 2개 이상의 서로 다른 통신 프로토콜들 중 어느 것을 사용하는 지를 결정하기 위한 설정가능한 비트 또는 모드 선택 핀을 포함하며,
    상기 2개 이상의 서로 다른 통신 프로토콜들은 적어도 CAN(Controller Area Network) 및 SMBus(System Management Bus) 를 포함하는 것을 특징으로 하는 메모리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 장치는 eSSD(Ethernet solid state drive) 또는 NVMe-oF(non-volatile memory over Fabrics (NVMe-oF)를 더 포함하는 것을 특징으로 하는 메모리 장치.
  3. 제 1 항에 있어서,
    상기 메모리 장치가 상기 하나 이상의 외부 장치들과 통신하기 위해 사용하는 상기 2개 이상의 서로 다른 통신 프로토콜들 중 어느 하나를 선택하기 위한 상기 설정가능한 비트 또는 상기 모드 선택 핀에 의해 제어되는 멀티플렉서를 더 포함하는 것을 특징으로 하는 메모리 장치.
  4. 제 1 항에 있어서,
    상기 설정가능한 비트 또는 상기 모드 선택 핀은 U.2 커넥터의 핀에서 설정되는 것을 특징으로 하는 메모리 장치.
  5. 제 4 항에 있어서,
    상기 U.2 커넥터는 SMBus 프로토콜 또는 CAN(Controller Area Network) 프로토콜 통신들 중 하나를 수신하기 위해 재설정될 수 있는 2개의 핀들을 포함하는 것을 특징으로 하는 메모리 장치.
  6. 제 1 항에 있어서,
    상기 설정가능한 비트는 상기 메모리 장치에 의해서 셀프-구성동안 설정되도록 구성되는 것을 특징으로 하는 메모리 장치.
  7. 제 1 항에 있어서,
    상기 메모리 장치는 미드-플레인을 통해 상기 하나 이상의 외부 장치들과 통신하도록 구성되는 것을 특징으로 하는 메모리 장치.
  8. 하나 이상의 외부 장치들; 및
    상기 하나 이상의 외부 장치들과 통신하도록 구성된 메모리 장치를 포함하며,
    상기 메모리 장치는 2개 이상의 서로 다른 통신 프로토콜들 중 어느 것을 상기 메모리 장치와 상기 하나 이상의 외부 장치들 사이에 사용되는 지를 결정하기 위한 설정가능한 비트 또는 모드 선택 핀을 포함하며,
    상기 2개 이상의 서로 다른 통신 프로토콜들은 적어도 CAN(Controller Area Network) 및 SMBus(System Management Bus) 를 포함하는 것을 특징으로 하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 메모리 장치는 eSSD(Ethernet solid state drive) 또는 NVMe-oF(non-volatile memory over Fabrics (NVMe-oF)를 포함하는 것을 특징으로 하는 메모리 시스템.
  10. 외부 장치와의 통신을 위해 메모리 장치에서 사용될 적어도 2개 이상의 서로 다른 통신 프로토콜들 중 하나를 선택하기 위한 방법에 있어서:
    상기 메모리 장치의 모드 선택 핀의 전압을 제공하거나 또는 상기 메모리 장치의 비트를 설정하는 것에 의해서 모드를 선택하는 단계; 및
    상기 선택된 모드에 따라서 상기 메모리 장치의 핀들을 통해 상기 외부 장치와 통신하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020180010098A 2017-03-24 2018-01-26 Can 버스 또는 smbus 인터페이스를 지원하는 멀티-모드 nvme 오버 패브릭 장치 KR102267483B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762476557P 2017-03-24 2017-03-24
US62/476,557 2017-03-24
US15/615,729 2017-06-06
US15/615,729 US10338838B2 (en) 2017-03-24 2017-06-06 Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface

Publications (2)

Publication Number Publication Date
KR20180108417A true KR20180108417A (ko) 2018-10-04
KR102267483B1 KR102267483B1 (ko) 2021-06-22

Family

ID=63582578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180010098A KR102267483B1 (ko) 2017-03-24 2018-01-26 Can 버스 또는 smbus 인터페이스를 지원하는 멀티-모드 nvme 오버 패브릭 장치

Country Status (3)

Country Link
US (4) US10338838B2 (ko)
KR (1) KR102267483B1 (ko)
CN (1) CN108628779B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733137B2 (en) * 2017-04-25 2020-08-04 Samsung Electronics Co., Ltd. Low latency direct access block storage in NVME-of ethernet SSD
US10558376B2 (en) * 2018-06-28 2020-02-11 Western Digital Technologies, Inc. Storage system and method for namespace reservation in a multi-queue single-controller environment
AU2019394682A1 (en) 2018-12-03 2021-06-24 Hewlett-Packard Development Company, L.P. Logic circuitry
JP6995252B1 (ja) 2018-12-03 2022-02-09 ヒューレット-パッカード デベロップメント カンパニー エル.ピー. 論理回路
KR20210087987A (ko) 2018-12-03 2021-07-13 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 로직 회로 패키지
US11338586B2 (en) 2018-12-03 2022-05-24 Hewlett-Packard Development Company, L.P. Logic circuitry
BR112021010044A2 (pt) 2018-12-03 2021-08-17 Hewlett-Packard Development Company, L.P. circuitos lógicos
ES2886253T3 (es) * 2018-12-03 2021-12-16 Hewlett Packard Development Co Circuitos lógicos
KR20210087982A (ko) 2018-12-03 2021-07-13 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 로직 회로
WO2021080607A1 (en) 2019-10-25 2021-04-29 Hewlett-Packard Development Company, L.P. Logic circuitry package
EP3687820B1 (en) 2018-12-03 2022-03-23 Hewlett-Packard Development Company, L.P. Logic circuitry
US11364716B2 (en) 2018-12-03 2022-06-21 Hewlett-Packard Development Company, L.P. Logic circuitry
CN109739158B (zh) * 2019-02-28 2020-09-04 苏州浪潮智能科技有限公司 一种m.2连接器供电控制电路
CN110647485B (zh) * 2019-09-23 2021-04-06 大唐半导体科技有限公司 一种芯片及其管脚复用的实现方法
US11182312B2 (en) 2020-04-02 2021-11-23 Micron Technology, Inc. Memory sub-system manufacturing mode
CN112039745B (zh) * 2020-09-17 2021-06-22 广东高云半导体科技股份有限公司 Can总线通讯控制系统及通信系统
US11409683B2 (en) * 2020-12-22 2022-08-09 Dell Products L.P. Systems and methods for single-wire multi-protocol discovery and assignment to protocol-aware purpose-built engines
US11509751B2 (en) * 2020-12-23 2022-11-22 Dell Products L.P. Self-describing system using single-source/multi-destination cable
US11573718B2 (en) 2021-02-12 2023-02-07 Western Digital Technologies, Inc. Disaggregation of control path and data path

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160825A (ja) * 1999-12-03 2001-06-12 Fujitsu Ltd パケット中継装置
US20100003936A1 (en) * 2005-10-06 2010-01-07 Broadcom Corporation Multimode communication device with shared signal path programmable filter
US20100046545A1 (en) * 2004-10-12 2010-02-25 Electro Industries/Gauge Tech System and method for simultaneous communication on modbus and dnp 3.0 over ethernet for electronic power meter
US20160335220A1 (en) * 2014-04-25 2016-11-17 Liqid Inc. Stacked-device peripheral storage card
US9524108B2 (en) * 2014-08-29 2016-12-20 Dell Products, Lp System and method for providing personality switching in a solid state drive device

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851014B2 (en) * 2002-03-22 2005-02-01 Programmable Microelectronics Corp. Memory device having automatic protocol detection
US20040164170A1 (en) * 2003-02-25 2004-08-26 Marcelo Krygier Multi-protocol memory card
US7454586B2 (en) * 2005-03-30 2008-11-18 Intel Corporation Memory device commands
US20080244129A1 (en) * 2007-03-29 2008-10-02 Aten International Co., Ltd. Master device of two-wire bus providing release function for clock line and method thereof
US7707339B2 (en) * 2007-12-18 2010-04-27 Freescale Semiconductor, Inc. Data arbitration on a bus to determine an extreme value
US7913012B2 (en) 2007-12-31 2011-03-22 Silicon Laboratories, Inc. System and method for connecting a master device with multiple groupings of slave devices via a LINBUS network
US8225019B2 (en) 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
KR101532587B1 (ko) * 2009-05-13 2015-07-01 삼성전자주식회사 차량과 이동 단말기간의 데이터 전송 방법 및 인터페이스 장치
US9285432B2 (en) * 2011-07-26 2016-03-15 GM Global Technology Operations LLC Method and system for controlling a vehicle battery
US8799527B2 (en) * 2012-09-07 2014-08-05 Apple Inc. Data structures for facilitating communication between a host device and an accessory
US9158459B2 (en) * 2012-03-05 2015-10-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing a storage device using a hybrid controller
US9454329B2 (en) 2012-04-30 2016-09-27 Intel Corporation Mirroring memory commands to memory devices
US8683460B2 (en) 2012-05-11 2014-03-25 International Business Machines Corporation Grandfathering configurations in a distributed environment
US8924600B2 (en) 2013-03-14 2014-12-30 General Electric Company Programmable universal IO interface
US9135203B2 (en) 2013-05-01 2015-09-15 Jonathan Glickman Computer system and a computer device
US9400614B2 (en) * 2013-12-05 2016-07-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for programmable sequencer for processing I/O for various PCIe disk drives
US10180889B2 (en) * 2014-06-23 2019-01-15 Liqid Inc. Network failover handling in modular switched fabric based data storage systems
US10261937B2 (en) 2014-07-25 2019-04-16 Dell Products L.P. Method and system for communication of device information
US9804989B2 (en) * 2014-07-25 2017-10-31 Micron Technology, Inc. Systems, devices, and methods for selective communication through an electrical connector
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
US20160162268A1 (en) * 2014-12-08 2016-06-09 Nec Energy Solutions, Inc. Serial protocol communications between a computerized user device and a battery module
US10198183B2 (en) 2015-02-06 2019-02-05 Liqid Inc. Tunneling of storage operations between storage nodes
US20160259754A1 (en) * 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
US10019388B2 (en) 2015-04-28 2018-07-10 Liqid Inc. Enhanced initialization for data storage assemblies
US10114778B2 (en) * 2015-05-08 2018-10-30 Samsung Electronics Co., Ltd. Multi-protocol IO infrastructure for a flexible storage platform
KR102274038B1 (ko) * 2015-08-03 2021-07-09 삼성전자주식회사 백업 기능을 갖는 메모리 모듈
GB2542201B (en) * 2015-09-14 2018-09-05 Jaguar Land Rover Ltd Vehicle brake systems
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
TWI721319B (zh) * 2016-06-10 2021-03-11 美商利魁得股份有限公司 資料儲存系統中的多埠中介件架構
CN106502169A (zh) * 2016-12-27 2017-03-15 河南思维自动化设备股份有限公司 重载机车操纵控制辅助系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160825A (ja) * 1999-12-03 2001-06-12 Fujitsu Ltd パケット中継装置
US20100046545A1 (en) * 2004-10-12 2010-02-25 Electro Industries/Gauge Tech System and method for simultaneous communication on modbus and dnp 3.0 over ethernet for electronic power meter
US20100003936A1 (en) * 2005-10-06 2010-01-07 Broadcom Corporation Multimode communication device with shared signal path programmable filter
US20160335220A1 (en) * 2014-04-25 2016-11-17 Liqid Inc. Stacked-device peripheral storage card
US9524108B2 (en) * 2014-08-29 2016-12-20 Dell Products, Lp System and method for providing personality switching in a solid state drive device

Also Published As

Publication number Publication date
US20230266900A1 (en) 2023-08-24
US20180275905A1 (en) 2018-09-27
CN108628779A (zh) 2018-10-09
CN108628779B (zh) 2024-03-29
US20190286352A1 (en) 2019-09-19
KR102267483B1 (ko) 2021-06-22
US20210240373A1 (en) 2021-08-05
US11016682B2 (en) 2021-05-25
US10338838B2 (en) 2019-07-02
US11656774B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
CN108628779B (zh) 存储器装置及其方法、存储器系统
US11681643B2 (en) Flexible mobile device connectivity to automotive systems with USB hubs
CN107015928B (zh) 用以切换多个接口的系统及其方法及用以切换总线的系统
US10387362B2 (en) Secondary data channel communication system
US9720864B2 (en) Flexible server system
US20160371213A1 (en) Flexible mobile device connectivity to automotive systems with usb hubs
US8756360B1 (en) PCI-E compatible chassis having multi-host capability
WO2014031230A1 (en) Methods and apparatus for sharing a network interface controller
WO2010002660A2 (en) Asymmetrical universal serial bus communications
KR20180035266A (ko) 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법
CN109411007B (zh) 一种基于fpga的通用闪存测试系统
CN110622145B (zh) 可重新配置的服务器以及服务器机架
WO2013048508A1 (en) Bandwidth configurable io connector
EP3382567B1 (en) Multiple storage devices implemented using a common connector
WO2017172003A1 (en) Transmitting universal serial bus (usb) data over alternate mode connection
US20150186317A1 (en) Method and apparatus for detecting the initiator/target orientation of a smart bridge
CN203746067U (zh) 一种基于dsp和cpld开发的多路arinc429数据收发电路结构
US10379139B2 (en) Methods, systems and devices for testing circuit modules using a microbackplane interface
US20140032802A1 (en) Data routing system supporting dual master apparatuses
JP7052929B2 (ja) 情報処理装置及び通信切替方法
CN106250336A (zh) 一种fpga及进行总线切换的方法和系统
Hanawa et al. Power-aware, dependable, and high-performance communication link using PCI Express: PEARL
CN103678222A (zh) 堆叠式电子系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant