KR20180134745A - 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법 - Google Patents

에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20180134745A
KR20180134745A KR1020180046974A KR20180046974A KR20180134745A KR 20180134745 A KR20180134745 A KR 20180134745A KR 1020180046974 A KR1020180046974 A KR 1020180046974A KR 20180046974 A KR20180046974 A KR 20180046974A KR 20180134745 A KR20180134745 A KR 20180134745A
Authority
KR
South Korea
Prior art keywords
data
nvme
gpu
end user
content
Prior art date
Application number
KR1020180046974A
Other languages
English (en)
Other versions
KR102520039B1 (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 KR20180134745A publication Critical patent/KR20180134745A/ko
Application granted granted Critical
Publication of KR102520039B1 publication Critical patent/KR102520039B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/183Internal mounting support structures, e.g. for printed circuit boards, internal connecting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2596Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 NVMe-oF(nonvolatile memory express over fabrics) 장치를 사용하여 컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하는 방법이다. 본 발명은 NVMe-oF 장치에서 읽기 요청을 수신하는 단계, 데이터에 대응하는 로직 주소를 물리 주소로 변환하는 단계, NVMe-oF 장치의 플래시 스토리지로부터 데이터를 패치하는 단계, NVMe-oF 장치 또는 NVMe-oF와 동일한 섀시에 내장된 GPU로 데이터를 처리하는 단계, 및 데이터를 전송하는 단계를 포함한다.

Description

에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR SUPPORTING ENERGY AND TIME EFFICIENT CONTENT DISTRIBUTION AND DELIVERY}
본 개시의 몇몇 실시 예들은 일반적으로 컨텐츠 전송 네트워크들을 통한 컨텐츠 분배와 관련된다.
컨텐츠 전송 네트워트(content delivery network; CDN)는, 최종 사용자들에게 가치있는 컨텐츠를 광범위하게 분배하도록 하는 다수의 데이터 센터들에 배치된 프록시 서버들의 전세계적으로 분포된 네트워크이다. 예로서, 이러한 컨텐츠는 음성 데이터, 영상 데이터, 광고 컨텐츠 등을 포함한다. 따라서, CDN들은, 영상, 음성, 소프트웨어 등과 같은 인터넷 컨텐츠의 큰 부분을 제공한다. 컨텐츠 소유자들 또는 컨텐츠 배포자들(예컨대, 미디어 회사들 및 공급업체들)은 CDN 운영자들에게 다양한 최종 사용자들에게 요청된 컨텐츠를 전달하기 위해 비용 지불을 한다. 이에 대응하여, CDN은 일반적으로 인터넷 서비스 사업자(internet service provider; ISP)들, 통신 사업자들, 및 네트워크 운영자들에게 CDN 서버들을 운영하기 위한 데이터 센터들을 제공하는 것에 대한 비용을 지불한다.
CDN 노드들은 다수의 위치들에 배치될 수 있고, 다수의 네트워크 백본(network backbone)들 상에 배치될 수 있다. CDN 노드들이 컨텐츠 소유자들 및 컨텐츠 배포자들에 제공하는 이득은 감소된 대역폭 비용, 더 빠른 페이지 로딩, 및 증가된 배포된 컨텐츠의 지리적인 가용성을 포함한다.
특정 CDN을 구성하는 CDN 노드들 및 서버들의 개수는 CDN의 아키텍쳐에 따라 다를 수 있다. 몇몇의 CDN들은 많은 상호 접속 위치(point of presence; PoP)들 상에 수만 개의 서버들의 수천 개의 노드들을 포함할 수 있다. 다른 CDN들은 상대적으로 적은 수의 지리적인 PoP들을 유지하면서 글로벌 네트워크를 형성할 수 있다.
CDN과 관련되는 알고리즘들은 어떠한 노드들을 통해 상이한 컨텐츠 요청들 및 컨텐츠 데이터가 이동하는지 결정할 수 있고, 몇몇의 원하는 목적을 달성하기 위해 몇몇의 방식에 따라 일반적으로 최적화 된다. 예로서, 알고리즘들의 최적화는 성능을 고려할 수 있고, 최종 사용자에게 요청된 컨첸츠를 제공하기 위해 가장 좋은 위치가 어디인지 결정할 수 있다. 로컬 네트워크들을 통한 전송을 위한 최적화 기술은, 예로서, 가장 적은 홉들의 위치들을 사용하는 것, 요청하는 클라이언트로부터의 가장 낮은 지연 속도/가장 낮은 네트워크 시간과 관련되는 위치들을 사용하는 것, 또는 가장 높은 서버 성능 가용성을 제공하는 위치들을 사용하는 것을 포함할 수 있다. 다른 최적화 기술은, 관련된 성능 대신 관련된 가격에 기초하여 위치들이 선택되는 최종 사용자로의 컨텐츠의 전달과 관련되는 비용을 고려할 수 있다. 하지만, 비용 및 성능 최적화들은, 엣지 서버들이 CDN의 엣지에서 최종 사용자에게 가능한 한 가까이 있을 수 있음으로써 정렬하므로, 이에 따라 비용, 에너지 사용, 및/또는 성능에 있어 몇몇의 이점들을 제공한다.
CDN 제공자들은, 일반적으로 다양한 커버리지 수준들에 기초하여 변하는 정의된 PoP들의 다양한 세트를 통해 서비스들을 제공한다. 정의된 PoP들의 세트들은 US, 인터네셔널/글로벌 밴드, 아시아 태평양 등을 포함할 수 있다. 이러한 PoP 세트들은 최종 사용자를 위한 CDN 어셋(asset) 엣지로의 근접성 때문에, 엣지들, 엣지 노드을, 또는 엣지 네트워크들로 일반적으로 지칭된다.
CDN 엣지 네트워크들은 수집들을 통해 성장할 수 있다. 수집들은 구입, 피어링, 및 콜로케이션 기능들, 대역폭들, 및 서버들의 교환을 포함할 수 있다. 몇몇의 기업들은, 기업이 기업에 중요한 것으로 간주되는 조치들을 구현하는 것을 가능하도록 기업에 속하는 노드들을 배치하는 CDN 엔드 포인트들을 포함할 수 있다. 예로서, 하나의 구현된 조치는 다양한 포맷들(예컨대, 동일한 영화의 표준 및 HD 버전들, 암호화에 의해 보호되는 두 개의 버전들)의 컨텐츠 보호를 포함할 수 있다.
CDN 엔드 포인트들은 하나 이상의 메모리 드라이브들(예컨대, SSD(solid state drive))들 또는 어레이 내의 하드 드라이브들)을 전통적으로 포함할 수 있다. 스토리지 드라이브들은 스토리지로부터 읽을 수 있는 서버를 사용하여 스토리지로부터 배포된 컨텐츠를 전달할 수 있다. CDN 엔드 포인트들은 컨텐츠 데이터를 재구성, 암호화, 또는 다르게 조작할 수 있다. 즉, 컨텐츠는 스토리지로부터/디스크에서 검색되고 CDN 네트워크로 전송됨으로써 배포된다. 하지만, 이러한 작업들을 수행하기 위해 표준 서버들 및 프로세서들을 사용하는 것은 많은 비용이 들고 에너지를 소비할 수 있다.
또한, CDN들은, 컨텐츠 전달 최적화를 위해 설계된 기술들로 다수의 인텔리전트 어플리케이션들을 배포함으로써 인터넷 전송 네트워크의 엔드 투 엔드 원리를 증가시킨다. 어플리케이션들은 웹 캐싱, 서버 로드 밸런싱, 요청 라우팅, 및 컨텐츠 서비스들을 포함할 수 있다.
이상의 어플리케이션들에 대해, 웹 캐싱은 요청된 컨텐츠에 대한 가장 큰 수요를 갖는 서버들 상에 인기있는 컨텐츠를 저장하기 위한 방법이다. 웹 캐싱은 공유된 네트워크 기기들에서 일어나고, 대역폭 요구들 및 서버 로드를 감소시키고, 캐시에 저장된 컨텐츠에 대한 클라이언트 응답 시간들을 향상시킨다.
서버 로드 밸런싱은 많은 수의 서버들 또는 웹 캐시들 사이에서 트래픽을 공유하기 위한 다른 기술이며, 레이어 4-7 스위치들, 웹 스위치들, 컨텐츠 스위치들 또는 멀티플레이어 스위치들과 같은 특성화된 하드웨어를 사용할 수 있다. 트래픽이 스위치에 도달할 때, 트래픽은 스위치에 결합된 물리적인 웹 서버로 다시 전송된다. 실패한 웹 서버 로드들 재분배 및 서버 상태 검사들의 성능으로 인한 로드 균형, 증가된 총 용량, 향상된 확장성, 및 증가된 신뢰도의 이점들이 있다.
도 1은 컨텐츠 전송 네트워크에서 사용되는 NVMe(nonvolatile memory express) 기반 시스템과 관련된 기술을 도시한다.
도 1을 참조하면, 종래의 CDN(100)에서, 상이한 컨텐츠가 전통적인 스토리지(예컨대, NVMe SSD들(120))에 위치한다. CDN(100)은, CPU(110) 내의 또는 CPU(110)와 관련된 GPU(graphics processing unit)의 위치 주소가 프로그램 되는 보드 관리 제어기(board management controller; BMC)를 포함할 수 있다. SSD(120)를 통한 최종 사용자/이용자(170)로의 컨텐츠의 이동은 다음과 같다.
첫째로, 로컬 CPU(110)는 요청된 컨텐츠와 관련된 컨텐츠 데이터를 미드 플레인(midplane, 125) 및 관련된 PCIe(Peripheral Component Interconnect Express) 스위치(130)를 경유하여 선택된 SSD(120)로부터 CPU(110)의 DRAM(dynamic random access memory)로 이동시킬 것이다. 이후, 컨텐츠 데이터는 GPU로 이동되고, GPU는 관련된 고 대역폭 메모리(140)로 컨텐츠를 처리한다. 처리된 컨텐츠는 이후 직접 메모리 접근(direct memory access; DMA) 동작들을 통해 CPU(110)의 DRAM으로 다시 이동된다. 처리된 컨텐츠는 그 후에 PCIe 버스를 통해 로컬 네트워크 인터페이스 컨트롤러(network interface controller; NIC, 150)로 다시 이동되고, 로컬 네트워크 인터페이스 컨트롤러(150)는 이후 처리된 컨텐츠들을 최종 사용자(170)(예컨대, 고객 또는 이용자)에게 전송한다.
하지만, 처리된 데이터를 최종 사용자(170)에게 전송하기 전 데이터를 처리하기 위한 GPU 또는 동등한 프로세서로 데이터를 이동시키는 것은 에너지 소비 측면에서 많은 비용이 들 수 있다. 즉, 전통적인 CDN(100)의 잠재적인 이슈는, 최종 사용(170)가 컨텐츠를 수신할 수 있기 전까지 컨텐츠가 통과해야 하는 터치 포인트들이 너무 많을 수 있다는 것이다. 따라서, 요청된 컨텐츠를 최종 사용자들에게 전달하기 위한 향상된 방법들이 있을 수 있다.
본 발명은 컨텐츠 전송 네트워크들을 통한 향상된 컨텐츠 배포를 가능하게 하는 시스템 및 방법을 제공할 수 있다.
본 발명의 실시 예들에 따르면, NVMe-oF 장치를 사용하여 컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하는 방법이 제공될 수 있다. 방법은 NVMe-oF 장치에서 읽기 요청을 수신하는 단계, 데이터에 대응하는 논리 주소를 물리 주소로 변환하는 단계; NVMe-oF 장치의 플래시 스토리지로부터 데이터를 패치하는 단계; NVMe-oF 장치 또는 NVMe-oF와 동일한 섀시 상에 내장된 GPU로 데이터를 처리하는 단계; 및 데이터를 전송하는 단계를 포함할 수 있다.
데이터를 전송하는 단계는, 최종 사용자와 GPU 사이의 로컬 CPU로 데이터를 전송하지 않고 최종 사용자에게 데이터를 전송하는 단계를 포함할 수 있다.
방법은 데이터를 최종 사용자에 대응하는 원격 호스트로 전송하는 단계, 및 데이터를 전송한 뒤 원격 호스트로 완료 메시지를 전송하는 단계를 더 포함할 수 있다.
방법은 NVMe-oF 장치에 의해 처리된 데이터를 식별하는 단계를 더 포함할 수 있다.
처리된 데이터를 식별하는 단계는, 데이터를 네임 스페이스에 저장하는 단계, 및 데이터 읽기 동작이 네임 스페이스에 발생하면, 데이터 변형들의 세트를 수행하는 단계를 포함할 수 있다
처리된 데이터를 식별하는 단계는 키 값 유형의 스토리지 시스템을 통해 처리된 데이터를 식별하는 단계를 포함할 수 있다.
처리된 데이터를 식별하는 단계는 데이터 변형 명령들의 세트를 포함하는 로직 블럭 주소(logical block address, LBA) 범위를 할당하는 단계를 포함할 수 있다.
데이터를 처리하는 단계는, 최종 사용자에 의한 요청에 따르고 읽기 요청에 대응하는 데이터를 포맷하는 단계를 포함할 수 있다.
NVMe-oF 장치는 eSSD(ethernet Solid State Drive)를 포함할 수 있다.
본 발명의 실시 예들에 따르면, 그래픽 처리 장치(GPU), 및 컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하기 위한 복수의 NVMe-oF 장치를 포함하되, 복수의 NVMe-oF 장치는 데이터를 저장하기 위한 메모리 및 네트워크 패브릭 인터페이스를 포함하는 NVMe-oF 섀시가 제공될 수 있다.
네트워크 패브릭 인터페이스는 이더넷 인터페이스, 인피니밴드(InfiniBand), 또는 파이버채널(FibreChannel)일 수 있다.
GPU는 U.2 폼 팩터 GPU를 포함할 수 있다.
NVMe-oF 섀시는 이더넷 스위치 또는 PCIe(Peripheral Component Interconnect expess) 스위치를 더 포함하되, 복수의 NVMe-oF 장치는 이더넷 스위치 또는 PCIe 스위치를 통해 GPU와의 사설 통신 채널을 설정하도록 구성될 수 있다.
NVMe-oF 섀시는 NVMe-oF 섀시에 BMC(Board Management Controller) 장치를 더 포함하되, GPU의 위치 주소는, BMC 장치에 의해 복수의 NVMe-oF 장치 중 대응하는 하나에서 프로그램 될 수 있다.
GPU는 컨텐츠 전송 네트워크를 통해 최종 사용자에게 요청된 데이터를 직접 전송하도록 구성될 수 있다.
본 발명의 실시 예들에 따르면, 컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하기 위한 NVMe-oF 장치가 제공될 수 있고, NVMe-oF 장치는 데이터를 저장하기 위한 메모리, 네트워크 패브릭 인터페이스, 및 데이터를 전송하기 전에 데이터를 처리하기 위한 통합된 GPU 및 통합된 디지털 신호 프로세서(Digital Signal Processor, DSP)를 포함할 수 있다.
네트워크 패브릭 인터페이스는 이더넷 인터페이스, 인피니밴드, 또는 파이버채널일 수 있다. NVMe-oF 장치는 eSSD를 포함할 수 있다.
데이터는 비디오 데이터에 대응하고, 데이터를 처리하는 동작은 비디오 포맷에 따라 데이터를 포맷하는 동작을 포함할 수 있다.
GPU는 네트워크 패브릭 인터페이스를 통해 최종 사용자에게 요청된 데이터를 직접 전송하도록 구성될 수 있다.
본 발명의 실시 예들은, CPU들 및 CPU들의 메모리들에 의해 동일한 디지털 컨텐츠들의 반복되는 복사를 피하면서 상호 접속 위치(Point of Presence; PoP)들에서 디지털 컨텐츠들의 시간 효율적이고 에너지 효율적인 전송 및 배포를 제공한다. 또한, 설명되는 실시 예들은, PoP들과 더 근접한 트랜스코더 기능들을 수행할 어떤 필요도 없는 동일한 NVMe-oF 섀시에서의 U.2-GPU의 사용으로 인해 비용 및 전력 효율성을 제공할 수 있다(예컨대, 75W 또는 더 높은 전력의 PCIe 카드 폼 팩터 포맷과 비교되는 25W의 SSD 포맷).
도 1은 컨텐츠 전송 네트워크에서 사용되는 NVMe(nonvolatile memory express) 기반 시스템과 관련된 기술을 도시한다.
도 2는 본 개시의 실시 예에 따른, GPU(graphics processing unit) 및 디지털 신호 프로세서(digital signal processor; DSP)를 포함하는 이더넷 SSD(eSSD)를 도시한다.
도 3은 본 개시의 실시 예에 따른, 컨텐츠 전송 네트워크(content distribution network; CDN)의 부분으로서 SSD 폼 팩터의 GPU 및 DSP를 포함하는 NVMe-oF(NVMe over fabric) 기반 시스템을 도시한다.
도 4는, 본 개시의 실시 예에 따른, GPU와 내장된 eSSD를 사용하여 최종 사용자에게 전달되기 전의 컨텐츠 데이터를 트랜스코딩(transcoding)하는 방법을 도시하는 흐름도 이다.
도 5는 본 개시의 실시 예에 따른, NVMe-oF 장치 섀시에서 외부의 U.2-GPU를 사용하여 미디어 트랜스코딩을 하기 위한 시스템 아키텍쳐를 도시한다.
도 6은 본 개시의 실시 예에 따른, 미디어 트랜스코딩을 수행하기 위해 U.2-GPU를 사용하여 eSSD를 동작시키는 방법을 도시하는 흐름도 이다.
본 발명의 특징, 그리고 그것을 달성하는 방법은 실시 예의 상세한 설명 및 첨부 된 도면들을 참조하면 명확해질 것이다. 이하, 예시적인 실시 예들은 유사한 참조 번호들은 유사한 구성 요소들을 지칭하는 첨부 도면을 참조하여 상세히 설명될 것이다. 그러나 본 발명은 여러 가지 다양한 형태로 구현될 수 있고, 본 명세서에서 단지 예시된 실시 예에 한정되는 것은 아니다. 오히려, 이러한 실시 예들은 이 개시가 철저하고 완전하게 되기 위한 예로서 제공되며, 당업자에게 본 발명의 특징 및 기능을 완전하게 전달할 것이다. 따라서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명의 특징 및 기능을 완벽하게 이해하기 위해 필요하지 않은 프로세스, 요소들, 및 기술들은 설명되지 않을 수 있다. 특별히 언급하지 않는 한, 유사한 참조 번호들은 첨부된 도면들 및 쓰여진 설명에서 유사한 구성요소들을 나타내고, 따라서 그것에 대한 설명은 반복되지 않을 것이다. 도면에서, 구성 요소, 층 및 영역들의 상대적인 크기는 명확성을 위해 과장될 수 있다.
이하의 설명에서, 설명의 목적으로, 다양한 실시 예들의 철저한 이해를 제공하기 위해 수많은 구체적인 세부 사항들이 설명된다. 그러나, 다양한 실시 예들이 이러한 구체적인 세부 사항들 없이 또는 하나 이상의 동등한 구성들로 실시 될 수 있음이 자명하다. 다른 예시에서, 다양한 실시 예들을 불필요하게 모호하게 만드는 것을 피하기 위해 널리 알려진 구조들 및 장치들이 블록도 형태로 도시된다.
비록 여기에서 제 1, 제 2, 제3 등의 용어들은 다양한 요소들, 성분들, 영역들, 층들 그리고/또는 섹션들을 설명하기 위해 사용되지만, 이러한 요소들, 성분들, 영역들, 층들 그리고/또는 섹션들은 이러한 용어들로 인해 제한되지 않는 것으로 이해될 것이다. 이러한 용어들은 다른 요소, 성분, 영역, 층, 또는 섹션으로부터 하나의 요소, 구성, 영역, 층 또는 섹션을 구별하기 위해 사용된다. 따라서, 후술하는 제 1 구성 요소, 성분, 영역, 층, 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고, 제 2 구성 요소, 성분, 영역, 층, 또는 섹션을 지칭 할 수 있다.
하나의 요소 또는 도면에서 도시된 다른 구성 요소(들) 또는 특징(들)과의 특징적인 관계를 설명하기 위한 설명을 용이하게 하기 위해 “아래의”, “아래”, “낮은”, “특정 부분 아래”, “위에”, “상부”와 같은 공간적이고 상대적인 용어들이 여기에서 사용될 수 있다. 공간적이고 상대적인 용어들은 도면에서 묘사된 방향에 더해 사용 또는 동작에서 장치의 다른 방향들을 포함하도록 의도된 것이 이해될 것이다. 예를 들면, 만약 도면의 장치가 뒤집어지면, 다른 구성 요소들 또는 특징들의 “아래” 또는 “아래의” 또는 “특정 부분 아래”로 설명된 구성요소들은 다른 구성 요소들 또는 특징들의 “위로” 맞춰지게 된다. 따라서, “아래의” 또는 “특정 부분 아래”의 예시적인 용어들은 위 또는 아래 방향 모두를 포함할 수 있다. 장치는 다르게 맞춰질 수 있으며(예를 들면, 90도 도는 다른 방향으로 회전됨) 그리고 공간적으로 상대적인 기술어들은 그에 따라 해석되어야 한다.
요소, 층, 영역, 또는 성분이 다른 요소, 층, 영역 또는 성분 “에”, “에 연결된”, “에 결합된” 것으로 언급되는 때, 그것은 다른 요소, 층, 영역, 또는 성분 “에 직접적으로”, “에 직접적으로 연결된”, “에 직접적으로 결합된”일 수 있거나, 하나 또는 그 이상의 사이의 요소들, 층들, 영역들, 또는 성분들이 존재할 수 있다. 또한, 요소 또는 층이 두 개의 요소들 또는 층들 사이로 언급되는 때, 그것은 단지 요소 또는 층이 두 요소들 또는 층들 사이에 있을 수 있거나, 또는 하나 이상의 사이의 요소들 또는 층들이 또한 존재할 수 있다.
본 개시의 목적상, “X, Y, 및 Z 중 적어도 하나” 및 “X, Y, 및 Z로 구성되는 그룹으로부터 선택된 적어도 하나”는 “예로서, 오직 X만, 오직 Y만, 오직 Z만, 또는 XYZ, XYY, YZ, and ZZ와 같이 X, Y, 및 Z 중 둘 이상의 임의의 조합으로 이해될 수 있다. 동일한 숫자들은 전반적으로 동일한 구성요소들을 지칭한다. 본 명세서에서 사용된 바와 같이, 용어 “및/또는”은 임의의 또는 모든 하나 이상의 관련되는 나열된 항목들의 조합들을 포함한다.
다음의 예시들에서, x축, y축, 그리고 z축은 직각 좌표 시스템의 3가지 축들로 한정되지 않고, 넓은 의미로 해석될 수 있다. 예를 들어, x축, y축, 그리고 z축은 서로 직교하거나 서로 직교하지 않은 다른 방향들을 나타낼 수 있다.
본 명세서에서 사용된 용어들은 단지 특정한 실시 예들을 설명하기 위한 것이고, 본 발명을 제한하려는 것으로 의도되지 않았다. 본 명세서에서 사용된 바와 같이, 문맥상 명백하게 다르게 뜻하지 않는 한, 단수 형태 “하나”는 복수의 형태도 포함하는 것으로 의도된다. “구성되는”, “구성되고 있는”, “포함하는”, 그리고 “포함하고 있는” 용어들이 본 명세서에서 사용될 때, 이러한 용어들은 정해진 특징들, 정수들, 단계들, 동작들, 요소들, 그리고/또는 성분들이 존재를 명시하나, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 성분들, 그리고/또는 그것들의 그룹들의 추가 또는 존재를 불가능하게 하지 않는다. 본 명세서에서 사용된 바와 같이, “그리고/또는” 용어는 하나 또는 그 이상의 열거된 항목들과 연관된 임의의 그리고 모든 조합들 포함한다. “적어도 하나”와 같은 표현들은 요소들 전체 리스트를 수정하고 그리고 리스트의 개별 요소들을 수정하지 않는다.
본 명세서에서 사용된 바와 같이, “대체로”, “약” 용어 그리고 이와 유사한 용어들은 근사치의 용어들로서 사용되고, 정도의 용어들로서 사용되지 않고. 본 발명의 당업자에 의해 식별되는 측정된 또는 계산된 값들의 고유한 변동을 고려하기 위한 것이다. 또한, 본 발명의 실시 예들을 기술할 때 "할 수 있다"의 사용은 "본 발명의 하나 이상의 실시 예들"을 의미한다. 본 명세서에서 사용된 바와 같이, “사용”, “사용되는”, 그리고 “사용된” 용어들은 “이용”, “이용되는”, 그리고 “이용된” 용어들의 동의어로 각각 간주 될 수 있다. 또한, "예시" 용어는 예 또는 그림을 의미한다.
특정 실시 예는 상이하게 구현 될 수 있을 때, 특정 프로세스 순서는 설명 된 순서와 다르게 수행 될 수 있다. 예를 들면, 설명된 연속적인 두 개의 프로세서들은 동시에 대체적으로 수행되거나 설명된 순서와 반대 순서로 수행될 수도 있다.
또한, 본 명세서에서 개시된 및/또는 나열된 임의의 수의 범위는 나열된 범위 내에 포함된 동일한 수의 정확성의 모든 하위 범위들을 포함하도록 의도된다. 예로서, “1.0 에서 10.0”의 범위는 나열된 최소 값 1.0과 나열된 최대 값 10.0 사이의(그리고 포함된) 모든 하위 범위들을 포함하도록, 즉, 예로서, 2.4 에서 7.6과 같이, 1.0와 같거나 큰 최소 값 및 10.0과 같거나 적은 최소 값을 갖는 하위 그룹들을 포함하도록 의도된다. 본 명세서에서 나열된 임의의 최대 수의 제한은 여기에 포함되는 모든 더 낮은 수의 제한들을 포함하도록 의도되고, 본 명세서에서 나열된 임의의 최소 수의 제한은 여기에 포함된 모든 더 높은 수의 제한들을 포함하도록 의도된다. 따라서, 출원인은 본 명세서에 명시적으로 나열된 범위들 내에 포함되는 임의의 하위 범위를 명시적으로 암시하기 위해, 청구들을 포함하는, 본 명세서를 보정할 권리를 보유한다. 모든 이러한 범위들은 본 명세서에서 내재적으로 설명되도록 의도될 것으로, 임의의 이러한 하위 범위들을 명시적으로 나열하기 위한 보정은 35 U.S.C. §112(a) 및 35 U.S.C. §132(a)의 요구들을 준수할 것이다.
본 명세서에서 다양한 실시 예들이 실시 예들 및/또는 중간 구조들의 개략도들인 단면도들을 참조하여 설명된다. 이와 같이, 예를 들어 제조 기술들 및/또는 허용 오차들과 같은 결과로서의 도면들의 형상들로부터의 변형들이 예상 되어야 한다. 그러므로, 본 명세서에서 개시된 실시 예들은 특정의 도시된 영역들의 형상들로 제한되는 것으로 이해되면 안되고, 예로 들어, 생산으로부터 야기된 형상들의 편차들을 포함한다. 예로서, 직사각형으로서 도시된 주입된 영역은, 일반적으로, 주입된 영역에서 주입되지 않은 영역으로의 이진의 변화가 아닌, 모서리들에서 둥근 또는 곡선의 특징들 및/또는 주입 농도의 변화도를 갖는다. 또한, 주입에 의해 형성된 매립 영역은, 매립 영역과 주입이 발생한 표면 사이의 영역에 약간의 주입을 야기한다. 그러므로, 도면들에서 도시된 영역들은 본질적으로 개략적이고, 도시된 영역들의 형상들은 장치의 영역의 실제 형상을 도시하도록 의도된 것이 아니고 제한하도록 의도된 것이 아니다.
본 명세서에서 설명되는 본 발명의 실시 예들에 따른 전자 또는 전기 장치들 및/또는 다른 관련된 장치들 및 구성요소들은, 임의의 적절한 하드웨어, 펌웨어(예컨대, 주문형 반도체(application-specific integrated circuit; ASIC), 소프트웨어, 또는 소프트웨어, 펌웨어, 및 하드웨어의 조합을 사용하여 구현될 수 있다. 예로서, 이러한 장치들의 다양한 구성요소들은 하나의 IC(integrated circuit) 칩 또는 분리된 IC 칩들 상에 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성요소들은 연성 인쇄 회로(flexible printed circuit; FPC) 필름, TCP(tape carrier package), 인쇄 회로 기판(printed circuit board; PCB) 상에 구현되거나 하나의 기판 상에 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성요소들은, 본 명세서에서 설명되는 다양한 기능들을 수행하기 위해, 하나 이상의 프로세서들 상에서 실행되고, 하나 이상의 컴퓨팅 장치들에 있고, 컴퓨터 프로그램 명령들을 실행하고, 다른 시스템 구성요소들과 상호작용하는 프로세서 또는 스레드 일 수 있다. 컴퓨터 프로그램 명령들은, 예로서, RAM(random access memory)와 같은 표준 메모리 장치를 사용하여 컴퓨팅 장치 내에 구현될 수 있는 메모리에 저장된다. 컴퓨터 프로그램 명령들은, 예로서, CD-ROM, 플래시 드라이브 등과 같은 다른 비일시적인 컴퓨터 판독 가능 매체에 저장될 수도 있다. 또한, 해당 기술의 통상의 기술자는 다양한 컴퓨팅 장치들의 기능이 하나의 컴퓨팅 장치에 결합 또는 통합될 수 있거나, 특정 컴퓨팅 장치의 기능이 본 발명의 예시적이 실시 예들의 사상 및 범위로부터 벗어나지 않는 하나 이상의 다른 컴퓨팅 장치들 전반에 분배될 수 있다는 것을 인지해야 한다.
다르게 정의되지 않는 한, 본 명세서에서 사용되는 (기술적인 및 과학적인 용어들을 포함하는)모든 용어들은, 본 발명이 속하는 기술 분야의 통상의 기술자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전들에서 정의되는 용어들과 같은 용어들은, 본 명세서에서 명시적으로 정의되지 않는한, 관련된 기술 및/또는 본 명세서의 맥락에서의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하고, 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안된다.
이상 설명된 바와 같이, 컨텐츠 제공자들은 사용 기반 또는 가입 기반 지불 서비스들에 따라 최종 사용자들에게 전달되는 다양한 유형들의 컨텐츠 데이터를 생성할 수 있다. 컨텐츠 제공자들은 컨텐츠 전송 네트워크(CDN)의 저장 노드들에 컨텐츠 데이터를 저장할 수 있고, 저장 노드들은, 최종 사용자들이 상호 접속 위치(Point of Presence; PoP) 서버들을 통해 구매된 매체/컨텐츠 데이터로의 접근을 요청할 때, PoP 서버들을 통해 최종 사용자들에게 컨텐츠 데이터를 전송할 수 있다.
하지만, 메모리 드라이브 어레이(예컨대, SSD 어레이)에 저장된 요청된 컨텐츠 데이터는 최종 사용자들에 의해 사용되기 전에 변형(예컨대, 암호화/복호화, 압축, 또는 포맷)될 수 있다. 그러한 데이터 변형은 많은 양의 컴퓨팅 자원들 및 데이터 이동들을 사용할 수 있고, 따라서, CDN의 전반적인 비용 또는 대기 시간을 추가할 수 있다.
본 개시의 실시 예에 따르면, NVMe-oF(nonvolatile memory express over fabrics) 장치(예컨대, 이더넷 SSD(Ethernet solid state drive))는 컨텐츠 데이터 스토리지(예컨대, 미디어 스토리지)를 위해 사용될 수 있다. eSSD는 요청된 컨텐츠 데이터가 로컬 CPU자원에 의지하지 않고 즉시 처리되거나 변형될 수 있다. 따라서, 최종사용자가 컨텐츠 데이터의 전달을 요청할 때 eSSD는 최종 사용자에 의해 접근될 수 있도록 CDN으로 컨텐츠 데이터를 전송하기 전에 트랜스코딩 또는 변형을 수행할 수 있다.
따라서, 본 개시의 실시 예들은, 컨텐츠 전송의 부분으로서 컨텐츠를 처리하기 위한 전문화된 그래픽 프로세서/그래픽 처리 장치(GPU)가 내장된 eSSD를 사용하여 미디어 트랜스코딩을 수행함으로써 종래의 CDN들 보다 더 많은 이점을 제공할 수 있다. 본 개시의 다른 실시 예들은, 이더넷 SSD 섀시들에서 미디어 트랜스코딩을 수행하기 위해 U.2-GPU를 사용하여 종래의 CDN들을 넘는 이점을 제공할 수 있다. 즉, 이하에서 eSSD가 전송되는 컨텐츠 데이터를 처리할 수 있도록 하는 두개의 실시 예들(eSSD 내장 GPUI 및 eSSD 외부에 있지만 동일한 섀시에 위치하는 U.2-GPU)이 논의된다.
설명된 실시 예들에 관하여 참조된 드라이브들이 eSSD(즉, 이더넷 결합 SSD)들로 표시되었지만, 설명된 실시 예들의 eSSD들로의 연결은 이더넷 이외에 어드레싱 가능한 네트워크 패브릭에 의해 달성될 수 있다는 것을 주의하여야 한다. 즉, 본 발명의 실시 예들은, 검색 능력, 주소 지정 기능도, 및 설명된 기능들을 수행하기 위한 충분한 기능을 제공하는 임의의 패브릭을 사용할 수 있다. 다른 패브릭들은 인피니밴드(Infiniband) 암호화 응용 프로그램 인터페이스(CAPI)를 포함하수 있으며, 파이버 채널도 포함할 수 있다. 또한, eSSD들은 네트워크 주소 지정 기능을 제공하는 인터넷 프로토콜 또는 다른 임의의 네트워크 레이어 프로토콜을 사용하여 접속될 수 있다. 또한, 본 개시의 다른 실시 예들에 따르면, 드라이브들은 SSD들일 필요는 없지만, 대신 NVMe-oF 프로토콜을 통해 통신이 가능한 몇몇의 다른 폼 메모리(form memory)일 수 있다. 설명된 실시 예들은, U.2 SFF, M.2, 및 새로운 드라이브 폼 팩터들과 같은, 다양한 폼 팩터들에 적용될 수 있다는 것 또한 주의하여야 한다.
도 2는 본 개시의 실시 예에 따른, GPU 및 DSP를 포함하는 eSSD를 도시한다. 도 3은 본 개시의 실시 예에 따른, CDN의 부분으로서 SSD 폼 팩터의 GPU 및 DSP를 포함하는 NVMe-oF(NVMe over fabric) 기반 시스템을 도시한다.
도 2 및 도 3을 참조하면, 본 개시의 실시 예의 특수 목적 eSSD(200)는 CPU와 관련된 내장된 GPU(210) 및 DSP(220)(예컨대, SSD 폼 팩터의 DSP를 포함하는 GPU)를 포함할 수 있다. 다른 실시 예에서, eSSD(200)는, 본 실시 예의 eSSD(200)의 GPU(210) 및 DSP(220)에 의해 완료될 수 있는 작업들을 달성하기 위한 FPGA(field-programmable gate array)를 포함할 수 있다. 또한, GPU(210) 및 DSP(220)는 하나의 장치에 위치할 수 있다. CPU는 eRINC 및 NVMF와 연결될 수 있다.
eSSD(200)는, CDN(200)의 PoP 장치들/서버들로의 컨텐츠 데이터의 배포를 위한 비용-효율적이고 에너지-효율적인 방법을 제공하기 위한 NVMe-oF 기반 시스템(예컨대, 도 3 참조)에서 사용될 수 있다. 따라서, 복수의 eSSD가, 높은 수요의(예컨대, 빈번하게 접근되는) 컨텐츠 데이터를 위한 국부적인 캐시들로서 제공되기 위해 CDN 엣지 어레이(310)에서 사용되도록 GPU들, FPGA들, 및/또는 DSP들을 포함할 수 있다.
GPU(210)(DSP와 함께)는 SSP 폼 팩터 내에 삽입될 수 있고, CDN 엣지 어레이(310)에 연결될 수 있고, 이에 따라 어레이(310)의 다른 eSSD들(200)에 의해 발견될 수 있다. 또한, 설명된 실시 예들을 달성하기 위해, GPU(210)는 내장된 플래시(예컨대, GPU 카드에 내장된 플래시)를 포함하는 GPU 연산 장치일 수 있다.
eSSD들(200)은 원격 소비자/최종 사용자(170)로의 전송을 위해 컨텐츠 데이터를 해독하고 처리할 수 있고, 이에 따라 컨텐츠 데이터의 배포를 위한 많은 양의 중앙 집중화된 컴퓨터 자원들을 포함하는 복잡하고 고급형의 엣지 서버들을 없애고, 또한 이에 따라 최종 사용자(170)로의 컨텐츠 배포를 위해 필요한 데이터 이동들(및 관련된 에너지 비용들)의 양을 줄일 수 있다.
최종 사용자(170)가 미디어/컨텐츠 데이터를 요청할 때, eSSD(200)는 최종 사용자(170)로부터의 대응하는 요청을 수신했던 원격 호스트/CPU로부터 하나 이상의 읽기 명령들을 수신한다. 요청된 컨텐츠 데이터는 eSSD(200)의 플래시 매체로부터 읽힐 수 있고, 내장된 GPU(210)에 의해 처음에 처리될 수 있다. 이후, 처리된 컨텐츠 데이터는 이더넷 연결을 직접 경유하여 최종 사용자(170)에게 전송될 수 있다. 예를 들어, 데이터는, eSSD(200)의 주 이더넷 포트(230)로서의 SAS 핀들(S2, S3, S5, 및 S6)을 경유하거나 보조 이더넷 포트(230)로서 SAS 핀들(S9, S10, S12, 및 S13)을 경유하고, 이더넷 스위치(320)을 경유하고(예컨대, 주 이더넷 포트(230)에 대응하는 주 이더넷 스위치(320a) 또는 보조 이더넷 포트(230)에 대응하는 보조 이더넷 스위치(320b)), 최종 사용자(170)와 연결되는 이더넷 연결(330)을 경유하여 최종 사용자(170)로 전송될 수 있다.
처리된 미디어/컨텐츠 데이터는 다양한 방법들을 사용하여 eSSD(200)에 의해 식별될 수 있다. 일 실시 예에 따르면, 컨텐츠 데이터는, 데이터 읽기 동작이 네임스페이스에 발생할 때, 데이터 변형들의 세트가 수행되는 특정 네임 스페이스들에 저장될 수 있다. 다른 실시 예에 따르면, 최종 사용자(170)에 대응하는 원격 호스트는, 데이터 변형 명령들의 세트를 포함하는 특정 로직 블럭 주소(LBA) 범위들을 할당할 수 있다. 또 다른 실시 예에 따르면, 데이터는 키 값 유형의 스토리지 시스템을 통해 식별될 수 있다.
도 4는, 본 개시의 실시 예에 따른, GPU가 내장된 eSSD를 사용하여 최종 사용자에게 전달되기 전의 컨텐츠 데이터를 트랜스코딩(transcoding)하는 방법을 도시하는 흐름도 이다.
도 4를 참조하면, 원격 최종 사용자(170)는 컨텐츠 데이터를 요청하기 위한 요청을 전송할 수 있고, eSSD(200)는 최종 사용자(170)의 요청에 대응하는 읽기 요청을(예컨대, 원격 호스트로부터) 수신할 수 있다(S410). 이후, eSSD(200)는 읽기 요청에 기초하여 로직-물리 주소 변형을 수행할 수 있다(S420). 이후, eSSD(200)는, eSSD(200) 내에 있을 수 있는 플래시 스토리지로부터 요청된 컨텐츠 데이터를 패치할 수 있다(S430). 이후, eSSD(200)는, 최종 사용자(170)에게 데이터를 전송하기 전에 패치된 컨텐츠 상에 데이터 트랜스코딩이 수행될지를 판별할 수 있다(S440).
eSSD(200)가 패치된 컨텐츠 데이터 상에 데이터 트랜스코딩이 수행되어야 한다고 판단하는 경우, eSSD(200)는, 즉시 데이터를 처리할 수 있는 온 칩 CPU(210)/결합된 CPU/DSP 유닛을 사용하여 데이터를 처리할 수 있다(S450). 데이터 트랜스코딩이 수행되지 않을 경우, 또는 eSSD(200)의 온 칩 GPU(210)가 데이터를 트랜스코딩/처리한 이후, eSSD(200)는 최종 사용자(170)에 대응하는 원격 호스트로 처리된 데이터를 전송한다(S460). 일단 컨텐츠 데이터가 eSSD(200)에 의해 CDN 상에 위치하면, eSSD(200)는 데이터가 CDN으로 전송되었다는 것을 지시하기 위해, 최종 사용자(170)에 대응하는 원격 호스트로 완료 메시지를 전송한다(S470).
도 5는 본 개시의 실시 예에 따른, NVMe-oF 장치 섀시에서 외부의 U.2-GPU를 사용하여 미디어 트랜스코딩을 하기 위한 시스템 아키텍쳐를 도시한다. 도 6은 본 개시의 실시 예에 따른, 미디어 트랜스코딩을 수행하기 위해 U.2-GPU를 사용하여 eSSD를 동작시키는 방법을 도시하는 흐름도 이다.
도 5 및 도 6을 참조하면, 본 실시 예의 eSSD(510)는 하나 이상의 메모리 드라이브들(예컨대, eSSD들)에 의해 공유되는 섀시(예컨대, eSSD 섀시)에 존재하는 U.2-GPU(520)를 사용한다. GPU(520)는, CDN 요건들의 제한들 및 환경적인 제한들에 따라 자원으로 제공될 수 있다. U.2-CPU(520)는 결합된 CPU/DSP 유닛일 수있다. 섀시(500)는 많은 양의 연산 자원들을 갖는 하나 이상의 U.2 폼 팩터 GPU들을 포함할 수 있다.
본 실시 예에서, 섀시(500) 상의 eSSD(510)는 이더넷 스위치(530) 또는 PCIe 스위치(540)를 사용하여 섀시(500) 상에 U.2-GPU(520)와의 사설 통신 채널을 설정할 수 있다. U.2-GPU(520)의 위치 주소는 섀시(500)에 있는 보드 관리 제어기(BMC, 500)에 의해 eSSD(510)에 프로그램 될 수 있다.
도 6을 참조하면, eSSD(510)는 호스트 읽기 요청을 수신할 수 있다(예컨대, eSSD(510)는 최종 사용자(170)에 의해 컨텐츠 데이터 요청에 대응하는 원격 호스트로부터 읽기 요청을 수신할 수 있다)(S610). 이후, eSSD(510)는 컨텐츠 데이터를 찾기 위해 로직-물리 주소 변환을 수행할 수 있고(S620), NVMe-oF 패브릭들을 통해 eSSD(510)로 전송되는 인 밴드(in-band) 데이터일 수 있는, 플래시 스토리지로부터의 컨텐츠 데이터를 패치 할 수 있다(S630). 이후, eSSD(510)는 데이터 트랜스코딩 또는 데이터 처리가 수행되어야 하는지 판별할 수 있다(S640).
eSSD(510)가 데이터 트랜스코딩 또는 처리가 수행되어야 한다고 판별하는 경우, eSSD(510)는 추가적인 처리를 위해 데이터를 U.2-GPU(520)로 직접적으로 전송하고, 충분한 정보도 전송하여(S650), U.2-GPU(520)가 U.2의 이더넷 연결을 통해 최종 사용자(170)에게 최종적으로 처리된 데이터를 직접적으로 전송할 수 있도록 할 수 있다(S670). 타겟 eSSD(510)는 요청하는 eSSD(510)에 의해 소유된 또는 eSSD(510)에 할당된 로컬 U.2-GPU(520)로 인 밴드 데이터를 전송할 수 있다(그렇지 않으면, eSSD(510)는 로컬 CPU(570) 또는 BMC(550)을 통해 공유된 자원들을 중재할 수 있다). 처리될 데이터의 카피는 PCIe 스위치(540)를 포함하는 PCIe 레인들을 통해 GPU(520)로 전송될 수 있다.
그 이후, U.2-GPU(520)는 컨텐츠 데이터를 트랜스코딩 할 수 있고(S660), 최종 사용자(170)로 트랜스코딩된 데이터를 직접 전송할 수 있다(S670). 데이터가 성공적으로 전송된 때, U.2-GPU(520)는, eSSD(510)와 U.2-GPu(520) 사이의 사설 통신 채널을 사용하여 eSSD(510)로 상태 메시지 또는 확인 메시지를 전송할 수 있다(S680). 이후, 요청하는 eSSD(510)는, 최종 사용자(170)에 대응하는 원격 호스트로 명령 완료를 전송하기 전에(S695), U.2-GPU(520)로부터 그러한 확인을 기다릴 수 있다(S685). U.2-GPU(520)는 처리된 데이터를 eSSD(510)로 다시 전송 수 있고, eSSD(510)는 최종 사용자(170)에 대응하는 원격 호스트로 데이터를 전송할 수 있다(S690). 그러나, U.2-GPU(520)는, 최종 사용자(170)에 대응하는 원격 호스트로의 직접적인 데이터 전송을 더 효율적으로 수행할 수 있다(S670).
eSSD(510)가 데이터 트랜스코딩이 필요하지 않다고 판별하는 경우(S640), eSSD(510)는 최종 사용자(170)에 대응하는 원격 호스트로 데이터를 전송할 수 있고(S690), CDN으로 모든 컨텐츠 데이터를 전송한 후, eSSD(510)는 명령 완료를 최종 사용자(170)에 대응하는 원격 호스트로 전송하고(S695), 다른 읽기 요청을 기다릴 수 있다.
몇몇의 실시 예들에서, 더 높은 레벨의 소프트웨어(예로서, 객체 저장 소프트웨어)는 데이터의 위치들 및 정체들을 추적하는 데 사용될 수 있다. 따라서, eSSD(510) 드라이브는 분리된 항목으로서 트랜스코딩된 데이터를 선택적이고 독립적으로 생성 및 저장할 수 있고, 따라서, 장치가 컨텐츠를 인식할 수 있도록 한다.
이상에 따르면, NVMe-oF 기반 섀시(500)는 상이한 요청된 컨텐츠 데이터에 대해 하나 이상의 CDN 노드들로서 배치될 수 있다. 특정 컨텐츠 데이터(예컨대, 상이한 포맷들의 영화들)에 대한 다수의 최종 사용자들로부터의 요청을 수신하면, 요청된 컨텐츠들이 노드 상에(즉, NVMe-oF 기반 섀시(500) 상에) 위치할 수 있다는 것이 판별될 수 있다. 타겟 eSSD(510)는, 요청된 컨텐츠의 “원시 데이터”를 특정한 최종 사용자(170)에 의해 요청된 포맷으로 변형하기 위해 이용가능한 결합된 CPU/DSP 유닛(520)으로 내부적인 요청을 전송할 수 있다. 원시 컨텐츠 데이터의 변형이 완료된 이후, CPU/DSP 유닛(520)은, 영화에 대응하는 데이터를 원래의 타겟 eSSD(510)에 다시 전송하지 않고 최종 사용자(170)에게 직접적으로 영화를 전송할 수 있다.
종래의 시스템들과는 다르게, 설명된 실시 예들은 PCIe 스위치를 경유하여 선택된 SSD로부터 CPU의 DRAM으로 요청된 컨텐츠를 이동시키기 위해 로컬 CPU가 필요하지 않다. 또한, 설명된 실시 예들의 컴퓨팅 자원들은 eSSD(510) 및/또는 U.2 GPU(520) 내의 연산 자원들에 의존한다(대역 외의 관리성에도 불구하고). 설명된 실시 예들은 DMA 동작들을 통해 CPU의 DRAM으로 다시 이동시키기 위해 처리된 컨텐츠 데이터를 필요로 하지도 않고, PCIe 버스를 통해 로컬 NIC로 다시 이동되기 위해 처리된 컨텐츠 데이터를 필요로 하지 않는다. 따라서, (종래의 CDN들과 비교할 때) 데이터 이동의 더 적은 사례가 사용되게 때문에, 최종 사용자들에게 동일한 요청된 디지털 컨텐츠들을 제공하면서도 eSSD와 GPU 유닛들 사이에서의 데이터의 더 적은 이동으로 인해, 네트워크 대기 시간 및 에너지 소비가 감소할 수 있다(예컨대, 최대 1000배까지 감소된다).
따라서, 본 개시의 실시 예들은 스위치에 결합된 복수의 ESSD, 및 eSSD에서 직접/eSSD 옆에서 요청된 컨텐츠 데이터의 전송 기능들 동안 나머지 암호화를 하기 위한 전용 연산 자원을 포함하는 중앙 자원 또는 ESSD 자원을 포함하는 eSSD(또는, 이더넷의 패브릭 인터페이스 상의 NVMe) 시스템을 제공한다. 이후, 전용 연산 자원은 추가적인 I/O 동작들을 피하기 위해 패브릭에 컨텐츠 데이터를 직접 내보낼 수 있다. 또한, 사용되는, 그렇지 않으면 유휴 상태 상태일 수 있는 자원들이 SSD 내에 사용될 수 있고, 네트워크에 연결하고 인증을 수행하기 위한 연산의 비용을 피할 수 있다.
이상은 예시적인 실시 예들이며, 그것들로 한정하는 것으로 해석되지 않는다. 비록 더 적은 예시적인 실시 예들만이 설명되었지만, 해당 기술의 통상의 기술자들은 본 기재의 신규한 설명들 및 장점들로부터 실질적으로 멀어지지 않으면서 이러한 실시 예들에 많은 수정들이 가능함을 충분히 이해할 것이다. 따라서, 이러한 모든 수정들은 청구항들에서 정의되는 바와 같이 본 발명의 기술적 사상의 범위 내에 포함되는 것으로 의도된다. 청구항들에서, 수단들-기능(means-plus-function) 절들은 상술된 기능 및 구조적인 등가물뿐만 아니라 등가의 구조들을 수행하는 것으로서 본 명세서에서 설명된 구조들을 포함하도록 의도된다. 그러므로, 앞선 설명은 예시적인 실시 예들의 예시가 되는 것이고 개시된 특정 실시 예들로 제한되는 것으로 간주되지 않는 것이며, 다른 예시적인 실시 예들뿐만 아니라 개시된 예시적인 실시 예들로의 변형들은 첨부된 청구항들의 범위 내에 포함되는 것으로 의도되는 것이 이해될 것이다. 본 발명의 개념은 다음의 청구항들과 거기에 포함되는 청구항들의 등가물들에 의해 정의된다.

Claims (10)

  1. NVMe-oF(nonvolatile memory express over fabrics) 장치를 사용하여 컨텐츠 전송 네트워크(Content Distribution network)를 통해 최종 사용자에게 데이터를 전송하는 방법에 있어서,
    상기 NVMe-oF 장치에서 읽기 요청을 수신하는 단계;
    상기 데이터에 대응하는 논리 주소를 물리 주소로 변환하는 단계;
    상기 NVMe-oF 장치의 플래시 스토리지로부터 상기 데이터를 패치하는 단계;
    상기 NVMe-oF 장치 또는 상기 NVMe-oF 장치와 동일한 섀시에 내장된 GPU로 상기 데이터를 처리하는 단계; 및
    상기 데이터를 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 데이터를 전송하는 단계는, 상기 최종 사용자와 상기 GPU 사이의 로컬 CPU로 상기 데이터를 전송하지 않고, 상기 최종 사용자에게 상기 데이터를 전송하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 데이터를 상기 최종 사용자에 대응하는 원격 호스트로 전송하는 단계; 및
    상기 데이터를 전송한 뒤 상기 원격 호스트로 완료 메시지를 전송하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 NVMe-oF 장치에 의해 상기 처리된 데이터를 식별하는 단계를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    상기 처리된 데이터를 식별하는 단계는,
    상기 데이터를 네임 스페이스에 저장하는 단계; 및
    데이터 읽기 동작이 상기 네임 스페이스에 발생하면, 데이터 변형들의 세트를 수행하는 단계를 포함하는 방법.
  6. 제 4 항에 있어서,
    상기 처리된 데이터를 식별하는 단계는 데이터 변형 명령들의 세트를 포함하는 로직 블럭 주소(logical block address; LBA) 범위를 할당하는 단계를 포함하는 방법.
  7. 그래픽 처리 장치(GPU); 및
    컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하기 위한 복수의 NVMe-oF 장치를 포함하되,
    상기 복수의 NVMe-oF 장치는 상기 데이터를 저장하기 위한 메모리 및 네트워크 패브릭 인터페이스를 포함하는 NVMe-oF 섀시.
  8. 제 7 항에 있어서,
    이더넷 스위치 또는 PCIe(Peripheral Component Interconnect expess) 스위치를 더 포함하되,
    상기 복수의 NVMe-oF 장치는 상기 이더넷 스위치 또는 상기 PCIe 스위치를 통해 상기 GPU와의 사설 통신 채널을 설정하도록 구성되는 NVMe-oF 섀시.
  9. 제 7 항에 있어서,
    BMC(Board Management Controller) 장치를 더 포함하되,
    상기 GPU의 위치 주소는, 상기 BMC 장치에 의해 상기 복수의 NVMe-oF 장치 중 대응하는 하나에서 프로그램 되는 NVMe-oF 섀시.
  10. 컨텐츠 전송 네트워크를 통해 최종 사용자에게 데이터를 전송하기 위한 NVMe-oF 장치에 있어서,
    상기 데이터를 저장하기 위한 메모리;
    네트워크 패브릭 인터페이스; 및
    상기 데이터를 전송하기 전에 상기 데이터를 처리하기 위한 통합된 GPU 및 통합된 디지털 신호 프로세서(Digital Signal Processor; DSP)를 포함하는 NVMe-oF 장치.
KR1020180046974A 2017-06-09 2018-04-23 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법 KR102520039B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762517821P 2017-06-09 2017-06-09
US62/517,821 2017-06-09
US15/678,051 2017-08-15
US15/678,051 US11102294B2 (en) 2017-06-09 2017-08-15 System and method for supporting energy and time efficient content distribution and delivery

Publications (2)

Publication Number Publication Date
KR20180134745A true KR20180134745A (ko) 2018-12-19
KR102520039B1 KR102520039B1 (ko) 2023-04-11

Family

ID=64564424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180046974A KR102520039B1 (ko) 2017-06-09 2018-04-23 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US11102294B2 (ko)
KR (1) KR102520039B1 (ko)
CN (1) CN109032959B (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020247042A1 (en) * 2019-06-07 2020-12-10 Intel Corporation Network interface for data transport in heterogeneous computing environments
WO2020263223A1 (en) * 2019-06-25 2020-12-30 Hewlett Packard Enterprise Development Lp Mapping nvme-over-fabric packets using virtual output queues
US11777804B2 (en) 2019-06-11 2023-10-03 Hewlett Packard Enterprise Development Lp Automatic system provisioning for NVME-over-fabric storage
US11848989B2 (en) 2019-05-30 2023-12-19 Hewlett Packard Enterprise Development Lp Separate routing of NVMe-over-fabric packets and non-NVMe packets
US11997024B2 (en) 2019-06-25 2024-05-28 Hewlett Packard Enterprise Development Lp Mapping NVMe-over-fabric packets using virtual output queues

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933554B (zh) * 2019-03-20 2021-02-09 浪潮商用机器有限公司 一种基于GPU服务器的NVMe硬盘扩展装置
US11144226B2 (en) 2019-04-11 2021-10-12 Samsung Electronics Co., Ltd. Intelligent path selection and load balancing
US11216190B2 (en) 2019-06-10 2022-01-04 Samsung Electronics Co., Ltd. Systems and methods for I/O transmissions in queue pair-based NVMeoF initiator-target system
US11240294B2 (en) 2019-08-23 2022-02-01 Samsung Electronics Co., Ltd. Systems and methods for spike detection and load balancing resource management
US20210406170A1 (en) * 2020-06-24 2021-12-30 MemRay Corporation Flash-Based Coprocessor
CN114359015B (zh) * 2021-12-08 2023-08-04 北京百度网讯科技有限公司 数据传输方法、装置和图形处理服务器
EP4332747A1 (en) * 2022-09-02 2024-03-06 Samsung Electronics Co., Ltd. Systems and methods for integrating a compute resource with a storage device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160110148A (ko) * 2015-03-09 2016-09-21 삼성전자주식회사 메모리 장치 및 모듈
WO2017040706A1 (en) * 2015-09-02 2017-03-09 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
KR20170029503A (ko) * 2014-07-11 2017-03-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 사설 콘텐츠 분배 네트워크

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271530B2 (en) * 2002-04-08 2012-09-18 Oracale International Corporation Method and mechanism for managing and accessing static and dynamic data
US8255430B2 (en) * 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US8878864B2 (en) 2009-04-20 2014-11-04 Barco, Inc. Using GPU for network packetization
US9176883B2 (en) 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US9058675B2 (en) 2010-05-29 2015-06-16 Intel Corporation Non-volatile storage for graphics hardware
US8489760B2 (en) 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
US20170180272A1 (en) * 2012-10-03 2017-06-22 Tracey Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
US8996781B2 (en) 2012-11-06 2015-03-31 OCZ Storage Solutions Inc. Integrated storage/processing devices, systems and methods for performing big data analytics
KR20150105323A (ko) * 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
US9430412B2 (en) 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
US9021189B2 (en) 2013-07-24 2015-04-28 NXGN Data, Inc. System and method for performing efficient processing of data stored in a storage node
US9092321B2 (en) 2013-07-24 2015-07-28 NXGN Data, Inc. System and method for performing efficient searches and queries in a storage node
US9304557B2 (en) 2013-11-21 2016-04-05 Skyera, Llc Systems and methods for packaging high density SSDS
EP2897367A1 (en) * 2014-01-19 2015-07-22 Fabrix TV Ltd Methods and systems of storage level video fragment management
EP3158455B1 (en) * 2014-06-23 2020-03-18 Liqid Inc. Modular switched fabric for data storage systems
US9678670B2 (en) * 2014-06-29 2017-06-13 Plexistor Ltd. Method for compute element state replication
CN204242036U (zh) 2014-11-10 2015-04-01 长城信息产业股份有限公司 一种紧凑型图卡设备
US10061743B2 (en) 2015-01-27 2018-08-28 International Business Machines Corporation Host based non-volatile memory clustering using network mapped storage
US10474636B2 (en) * 2016-03-25 2019-11-12 Amazon Technologies, Inc. Block allocation for low latency file systems
EP4202705A1 (en) * 2016-04-04 2023-06-28 Marvell Asia Pte, Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
CN105912275A (zh) * 2016-04-27 2016-08-31 华为技术有限公司 在非易失性存储系统中建立连接的方法和装置
US10353604B2 (en) * 2016-12-27 2019-07-16 Intel Corporation Object transformation in a solid state drive

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170029503A (ko) * 2014-07-11 2017-03-15 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 사설 콘텐츠 분배 네트워크
KR20160110148A (ko) * 2015-03-09 2016-09-21 삼성전자주식회사 메모리 장치 및 모듈
WO2017040706A1 (en) * 2015-09-02 2017-03-09 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11848989B2 (en) 2019-05-30 2023-12-19 Hewlett Packard Enterprise Development Lp Separate routing of NVMe-over-fabric packets and non-NVMe packets
WO2020247042A1 (en) * 2019-06-07 2020-12-10 Intel Corporation Network interface for data transport in heterogeneous computing environments
US11025544B2 (en) 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
US11929927B2 (en) 2019-06-07 2024-03-12 Intel Corporation Network interface for data transport in heterogeneous computing environments
US11777804B2 (en) 2019-06-11 2023-10-03 Hewlett Packard Enterprise Development Lp Automatic system provisioning for NVME-over-fabric storage
WO2020263223A1 (en) * 2019-06-25 2020-12-30 Hewlett Packard Enterprise Development Lp Mapping nvme-over-fabric packets using virtual output queues
US11997024B2 (en) 2019-06-25 2024-05-28 Hewlett Packard Enterprise Development Lp Mapping NVMe-over-fabric packets using virtual output queues

Also Published As

Publication number Publication date
US20210377342A1 (en) 2021-12-02
US20180359318A1 (en) 2018-12-13
CN109032959B (zh) 2024-04-02
CN109032959A (zh) 2018-12-18
US11102294B2 (en) 2021-08-24
KR102520039B1 (ko) 2023-04-11

Similar Documents

Publication Publication Date Title
KR102520039B1 (ko) 에너지 및 시간 효율적인 컨텐츠 배포 및 전송을 지원하기 위한 시스템 및 방법
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
US10120586B1 (en) Memory transaction with reduced latency
WO2022108657A1 (en) Page-based remote memory access using system memory interface network device
US9792227B2 (en) Heterogeneous unified memory
US20030191838A1 (en) Distributed intelligent virtual server
CN102077193A (zh) 群集共享卷
US11496419B2 (en) Reliable transport offloaded to network devices
US20170256023A1 (en) Solid state storage local image processing system and method
EP3719648A1 (en) Edge component computing system having integrated faas call handling capability
US20210120077A1 (en) Multi-tenant isolated data regions for collaborative platform architectures
US9740523B2 (en) Optimizing stream-mode content cache
US10154079B2 (en) Pre-boot file transfer system
JP4676990B2 (ja) 分割トランスアクションを用いたバッファレス・dma・コントローラの実施
CN111209260A (zh) 基于分布式存储的nfs集群及其提供nfs服务的方法
JP5945543B2 (ja) ミドルウェアマシン環境を含むシステム
CN110309229A (zh) 分布式系统的数据处理方法和分布式系统
US11997163B2 (en) System and method for supporting energy and time efficient content distribution and delivery
CN105573801A (zh) 堆叠系统中实现软件升级的方法、装置及系统
WO2014077451A1 (ko) Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
EP3959619B1 (en) Multi-processor/endpoint data splitting system
CN110290035B (zh) 一种基于k3s的智慧家庭数据存储访问方法及系统
Ekane et al. Networking in next generation disaggregated datacenters
CN111382099A (zh) 一种基于rdma技术的分布式高性能计算方法
CN101741706B (zh) 因特网小型计算机系统接口iSCSI服务质量控制方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant