KR20220008201A - 저장-효율적인 센서들을 위한 시스템 및 방법 - Google Patents

저장-효율적인 센서들을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220008201A
KR20220008201A KR1020210036938A KR20210036938A KR20220008201A KR 20220008201 A KR20220008201 A KR 20220008201A KR 1020210036938 A KR1020210036938 A KR 1020210036938A KR 20210036938 A KR20210036938 A KR 20210036938A KR 20220008201 A KR20220008201 A KR 20220008201A
Authority
KR
South Korea
Prior art keywords
data
sensor
storage device
host
network
Prior art date
Application number
KR1020210036938A
Other languages
English (en)
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 KR20220008201A publication Critical patent/KR20220008201A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/16
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/38Services specially adapted for particular environments, situations or purposes for collecting sensor information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks
    • H04W84/042Public Land Mobile systems, e.g. cellular systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/30Arrangements in telecontrol or telemetry systems using a wired architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

저장-효율적인 센서들을 제공하는 시스템, 방법 및 장치가 제공된다. 방법은 매체 상에서 네트워크를 통해 저장 장치에 관련된 하나 이상의 파라미터들을 결정하기 위해 발견 서비스를 이용하는 단계; 상기 매체 상에서 상기 네트워크를 통해 적어도 하나의 센서로부터 저장 장치로 데이터를 전송하는 단계; 상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하는 단계; 및 상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하는 단계를 포함한다.

Description

저장-효율적인 센서들을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR STORAGE-EFFICIENT SENSORS}
본 개시는 일반적으로 센서 및 스토리지에 관한 것이고, 보다 구체적으로 센서들에 의해 생성된 데이터의 데이터 스토리지를 위한 시스템 및 방법에 관한 것이다.
다양한 정보 기술(IT) 시스템에서, 센서들은 그 환경으로부터 데이터를 캡쳐하는데 사용될 수 있다. 센서들의 일부 비-제한적인 예들은 사진 및 비디오 캡처 카메라, 온도 센서, 압력 센서, 습도 센서, 오디오 센서 등을 포함한다. 이러한 센서 장치들은 비교적 많은 개수로 다양한 시스템과 환경에 배치될 수 있다.
이 발명의 배경 기술에 공개된 상기 정보는 본 개시의 배경의 이해를 높이기 위한 것일 뿐이므로 종래 기술을 구성하지 않는 정보를 포함할 수 있다.
본 명세서에 설명된 다양한 실시예들은 일반적으로 하나 이상의 센서들로부터 데이터를 수집하고 데이터를 효율적으로 저장하여 (예를 들어, 호스트상의 어플리케이션을 통해) 그 센서 데이터의 사용자가 데이터를 사용할 수 있도록 하는 시스템, 방법 및 장치를 포함한다.
일부 실시예에서, 방법이 설명된다. 상기 방법은 발견 서비스를 이용하여 매체 상에서 네트워크를 통해 저장 장치에 관련된 하나 이상의 파라미터들을 결정하는 단계; 상기 매체 상에서 상기 네트워크를 통해 적어도 하나의 센서로부터 저장 장치로 데이터를 전송하는 단계; 상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하는 단계; 및 상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하는 단계를 포함한다.
일부 실시예에서, 상기 저장 장치는 1) 이름공간 또는 2) 스트림 중 적어도 하나를 포함할 수 있고, 상기 방법은 상기 센서에 의해 상기 데이터의 적어도 일부를 저장하기 위한 상기 이름공간 또는 상기 스트림을 지정하는 단계를 더 포함할 수 있다. 다른 실시예에서, 상기 적어도 하나의 호스트는 제1 호스트 및 제2 호스트를 포함할 수 있고, 상기 방법은 상기 저장 장치의 컨트롤러를 통해 상기 데이터에 관련돤 적어도 하나의 커맨드를 상기 제1 호스트 및 상기 제2 호스트로 전송하는 단계를 더 포함할 수 있다. 일부 실시예에서, 상기 적어도 하나의 센서는 제1 센서 및 제2 센서를 포함할 수 있고, 상기 데이터는 상기 제1 센서에 관련된 제1 데이터 및 상기 제2 센서에 관련된 제2 데이터를 포함할 수 있고, 상기 데이터를 처리하는 단계는 상기 제1 데이터 및 상기 제2 데이터를 집계하는 단계를 포함할 수 있다. 다른 실시예에서, 상기 매체는 a) 유선 매체 또는 b) 무선 매체를 적어도 부분적으로 포함할 수 있다.
일부 실시예에서, 상기 저장 장치는 1) 이름공간 또는 2) 스트림 중 적어도 하나를 포함할 수 있으며, 상기 방법은 센서에 의해 데이터의 적어도 일부를 저장하기 위한 이름공간 또는 스트림을 지정하는 단계를 더 포함할 수 있다. 또한, 상기 방법은 상기 데이터의 상기 일부가 상기 저장 장치에 저장되어 있음을 결정하는 단계; 상기 데이터의 상기 일부에 관련된 크기가 임계치를 초과한 것을 결정하는 단계; 및 상기 임계치를 초과한 상기 크기의 결정에 기초하여 상기 호스트로 비동기 알림을 전송하는 단계를 더 포함할 수 있다. 다른 실시예에서, 비동기 알림은 데이터 오프셋 정보, 데이터 위치 정보, 또는 데이터 길이 정보 중 적어도 하나를 포함할 수 있다.
일부 실시예에서, 상기 센서는 제1 위치에 위치하며, 상기 저장 장치는 제2 위치에 위치하며, 상기 제1 위치 및 상기 제2 위치는 미리결정된 거리만큼 지리적으로 분리되어 있다. 다른 실시예에서, 상기 데이터는 온도 데이터, 압력 데이터, 수질 데이터, 근접 데이터, 화학 데이터, 모션 데이터, 전자기장 데이터, 습도 데이터, 사진 파일, 비디오 파일, 또는 오디오 파일 중 적어도 하나를 포함할 수 있다. 일부 실시예에서, 상기 센서가 a) NVMe-oF(non-volatile-memory-express over fabric) 인에이블된 센서를 포함하는 것 또는 b) 상기 저장 장치는 이더넷-인에이블된 솔리드 스테이트 드라이브를 포함하는 것중 적어도 하나일 수 있다. 다른 실시예에서, 상기 센서는 이더넷 프로토콜, RDMA(remote data memory access) 프로토콜, iWARP(Internet Wide Area RDMA Protocol), 전송 제어 프로토콜/인터넷 프로토콜(TCP/P), RoCE(RDMA over Converged Ethernet) 프로토콜, 인피니밴드(InfiniBand) 프로토콜, 5 세대(5G) 무선 프로토콜, Wi-Fi 프로토콜, 블루투스 프로토콜, 또는 BLE(Bluetooth low energy) 프로토콜을 사용하여 데이터를 전송하도록 구성된다. 일부 실시예에서, 상기 저장 장치는 FPGA(field-programmable gate array), ASIC(application-specific integrated circuit), 또는 데이터를 처리하는 임의의 적절한 프로세서 중 적어도 하나를 포함할 수 있다. 다른 실시예에서, 상기 데이터를 처리하는 단계는 필터링 동작, 분류 동작 및 검색 동작중 적어도 하나를 포함할 수 있다.
다양한 실시예에서, 저장 장치가 설명된다. 상기 저장 장치는 컴퓨터 실행가능한 명령어들을 저장하는 적어도 하나의 메모리 장치; 상기 메모리 장치를 액세스하도록 구성된 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 상기 컴퓨터 실행가능한 명령어들을 실행함으로써 매체 상에서 네트워크를 통해 적어도 하나의 센서로부터 상기 저장 장치로 데이터를 수신하며; 상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하며; 상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하도록 구성된다.
일부 실시예에서, 상기 저장 장치는 1) 이름공간 또는 2) 스트림 중 적어도 하나를 포함할 ;수 있고, 상기 프로세서는 상기 센서에 의해 상기 데이터의 적어도 일부를 저장하기 위한 상기 이름공간 또는 상기 스트림을 지정하도록 거 구성될 수 있다. 일부 실시예에서, 상기 적어도 하나의 호스트는 제1 호스트 및 제2 호스트를 포함할 수 있고, 상기 프로세서는 상기 저장 장치의 컨트롤러를 통해 상기 데이터에 관련돤 적어도 하나의 커맨드를 상기 제1 호스트 및 상기 제2 호스트로 전송하도록 더 구성될 수 있다. 일부 실시예에서, 상기 적어도 하나의 센서는 제1 센서 및 제2 센서를 포함할 수 있고, 상기 데이터는 상기 제1 센서에 관련된 제1 데이터 및 상기 제2 센서에 관련된 제2 데이터를 포함할 수 있고, 상기 데이터를 처리하는 것은 상기 제1 데이터 및 상기 제2 데이터를 집계하는 것을 포함할 수 있다. 일부 실시예에서, 상기 매체는 a) 유선 매체 또는 b) 무선 매체를 적어도 부분적으로 포함할 수 있다. 일부 실시예에서, 상기 센서는 제1 위치에 위치하며, 상기 저장 장치는 제2 위치에 위치하며, 상기 제1 위치 및 상기 제2 위치는 미리결정된 거리만큼 지리적으로 분리되어 있다. 일부 실시예에서, 상기 데이터는 온도 데이터, 압력 데이터, 수질 데이터, 근접 데이터, 화학 데이터, 모션 데이터, 전자기장 데이터, 습도 데이터, 사진 파일, 비디오 파일, 또는 오디오 파일 중 적어도 하나를 포함할 수 있다. 일부 실시예에서, 상기 센서가 a) NVMe-oF 인에이블된 센서를 포함하는 것, 또는 b) 상기 저장 장치는 이더넷-인에이블된 솔리드 스테이트 드라이브를 포함하는 것중 적어도 하나일 수 있다.
일부 실시예에서, 시스템이 설명된다. 상기 시스템은 저장 장치, 적어도 하나의 센서, 및 적어도 하나의 호스트를 포함할 수 있다. 또한, 상기 저장 장치는 컴퓨터 실행가능한 명령어들을 저장하는 적어도 하나의 메모리 장치; 상기 메모리 장치를 액세스하도록 구성된 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 상기 컴퓨터 실행가능한 명령어들을 실행함으로써 매체 상에서 네트워크를 통해 적어도 하나의 센서로부터 상기 저장 장치로 데이터를 수신하며; 상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하며; 상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하도록 구성된다.
따라서, 여기에서 설명된 발명의 일부 예시적인 실시예는 다음의 이점중 하나 이상을 실현하도록 구현될 수 있다. 네트워크 대기 시간을 줄이고 네트워크 안정성 및 동작 데이터 전송률을 개선하고, 결과적으로 사용자 경험을 개선할 수 있고, 네트워크 트래픽 라우팅, 네트워크 유지 보수, 네트워크 업그레이드 등과 관련된 비용을 줄일 수 있다. 또한, 일부 측면에서, 개시된 시스템은 네트워크상의 장치의 전력 소비 및/또는 대역폭을 감소시키는 역할을 할 수 있고, 장치 간의 통신 속도 및/또는 효율성을 증가시키는 역할을 할 수 있다.
본 개시의 실시예들에 따르면, 하나 이상의 센서들로부터 데이터를 수집하고 데이터를 효율적으로 저장하여 (예를 들어, 호스트상의 어플리케이션을 통해) 그 센서 데이터의 사용자가 데이터를 사용할 수 있도록 하는 시스템, 방법 및 장치를 제공할 수 있다.
본 기술의 전술한 측면 및 다른 측면은 첨부된 도면을 참조하여 본 출원을 읽을 때 더 잘 이해되며, 도면에서 유사한 참조번호는 유사하거나 동일한 요소를 나타낸다.
도 1은 본 개시의 예시적인 실시예들에 따른, 네트워크 환경에서 센서들에 대한 데이터 흐름을 나타내는 도면을 도시한다.
도 2는 본 개시의 예시적인 실시예들에 따른, 네트워크화된 환경에서 저장-효율적인 센서들을 위한 예시적인 시스템 아키텍처의 다이어그램을 도시한다.
도 3은 본 개시의 예시적인 실시예에 따른, 개시된 시스템과 관련하여 사용하기 위한 예시적인 센서 아키텍처의 다이어그램을 도시한다.
도 4는 본 개시의 예시적인 실시예들에 따른, 임의의 예시적인 센서 동작들을 설명하는 예시적인 방법의 도면을 도시한다.
도 5는 본 개시의 예시적인 실시예들에 따른 예시적인 저장장치 아키텍처의 다이어그램을 도시한다.
도 6은 본 개시의 예시적인 실시예들에 따른, 네트워크화된 환경에서 저장-효율적인 센서들과 관련하여 사용하기 위한 데이터-기탁된 리포트 커맨드의 예시적인 구조의 다이어그램을 도시한다.
도 7은 본 개시의 예시적인 실시예들에 따른, 데이터 보관 리포트 커맨드와 관련된 완료 엔트리의 예시적인 구조의 다이아그램을 도시한다.
도 8은 본 개시의 예시적인 실시예에 따른, 환자 건강 파라미터가 저장 장치로 직접 전송될 수있는 의료 어플리케이션에서 저장-효율적인 센서와 저장 장치에 대한 사용 케이스 다이어그램을 도시한다.
도 9는 본 개시의 예시적인 실시예에 따른, 산업 공정 자동화 및 제어 어플리케이션에서 저장-효율적인 센서와 저장 장치에 대한 사용 케이스 다이어그램을 도시한다.
도 10은 본 개시의 예시적인 실시예에 따른, 사물 인터넷(IoT) 어플리케이션에서 저장-효율적인 센서와 저장 장치에 대한 사용 케이스 다이어그램을 도시한다.
도 11은 본 개시의 예시적인 실시예에 따른, 자율 주행 차량 군집 관리 어플리케이션에서 저장-효율적인 센서와 저장 장치에 대한 사용 케이스 다이어그램을 도시한다.
도 12는 본 개시의 다양한 실시예들과 관련하여 사용될 수 있는 다양한 디바이스들을 도시하는 시스템의 예시적인 개략도를 도시한다.
도 13은 본 개시의 예시적인 실시예들에 따른, 본 개시의 다양한 실시예들과 관련하여 사용될 수 있는 관리 컴퓨팅 엔티티의 특정 측면들의 예시적인 개략도를 도시한다.
도 14는 본 개시의 예시적인 실시예들에 따른, 본 개시의 다양한 실시예들과 관련하여 사용될 수 있는 예시적인 장치(예를 들어, 모바일 디바이스와 같은 사용자 장치)의 예시적인 개략도를 도시한다.
도 15는 본 개시의 예시적인 실시예들에 따른, 센서-기반 저장 아키텍처의 맥락에서 여기에서 다양하게 설명된 센서 및 저장 장치를 포함하는 시스템의 예시적인 동작들에 대한 방법의 다이어그램을 도시한다.
본 기술은 다양한 변경 및 대안적인 형태가 가능하지만, 그 특정 실시예들이 도면에서 예로서 도시되고 여기서 설명될 것이다. 도면은 축척되지 않을 수 있다. 그러나, 도면 및 그에 대한 상세한 설명은 본 기술을 개시된 특정 형태로 제한하려는 것이 아니라, 첨부된 청구범위에 의해 정의 된 본 기술의 사상 및 범위 내에 있는 모든 변경, 등가물 및 대안을 포함하도록 의도된 것임을 이해해야 한다.
본 명세서에 설명된 발명의 하나 이상의 실시예들의 세부사항은 첨부된 도면 및 이하의 설명에서 제공된다. 본 발명의 다른 특징, 측면 및 이점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
이하, 본 개시의 다양한 실시예들이 첨부된 도면을 참조하여 보다 완전하게 설명될 것이며, 여기서 모든 실시예는 아니지만 일부 실시예가 도시된다. 실제로, 본 개시는 다수의 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되는 것으로 해석되어서는 안되며, 오히려 이러한 실시예들은 본 개시가 적용 가능한 법적 요건을 만족하도록 제공된다. 용어 "또는"는 별도로 언급되지 않는 한 대안적 및 결합적 의미로 여기에서 사용된다. "도시"및 "예시"라는 용어는 품질 레벨을 나타내지 않는 예들로 사용된다. 동일한 도면부호는 전체적으로 동일한 요소를 나타낸다. 각 도면에서 화살표는 양방향 데이터 흐름 및/또는 양방향 데이터 흐름 능력을 나타낸다. 용어 "패스(path)", "경로(pathway)"및 "루트(route)"는 여기에서 상호 교환적으로 사용된다.
본 개시의 실시예들은 제조 물품을 포함하는 컴퓨터 프로그램 제품을 포함하여 다양한 방식으로 구현될 수 있다. 컴퓨터 프로그램 제품은 어플리케이션, 프로그램, 프로그램 컴포넌트, 스크립트, 소스 코드, 프로그램 코드, 개체 코드, 바이트 코드, 컴파일된 코드, 해석된 코드, 기계 코드, 실행가능한 명령어(실행 가능한 명령어, 실행을 위한 명령어, 컴퓨터 프로그램 제품, 프로그램 코드 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어로 지칭됨) 등을 포함할 수 있다. 이러한 비-일시적 컴퓨터 판독가능 저장 매체는 모든 컴퓨터 판독 가능 매체(휘발성 및 비휘발성 매체를 포함함)를 포함한다.
일 실시예에서, 비휘발성 컴퓨터 판독가능 저장 매체는 플로피 디스크, 플렉서블 디스크, 하드 디스크, 솔리드 스테이트 스토리지(SSS)(예컨대, 솔리드 스테이트 드라이브(SSD)), 솔리드 스테이트 카드(SSC), 솔리드 스테이트 컴포넌트(SSM), 엔터프라이즈 플래시 드라이브, 자기 테이프 또는 기타 비-일시적 자기 매체 등을 포함할 수 있다. 비휘발성 컴퓨터 판독가능 저장 매체는 또한 펀치 카드, 종이 테이프, 광학 마크 시트(또는 홀 패턴 또는 기타 광학적으로 인식 가능한 인디시아를 가진 기타 물리적 매체), CD-ROM (Compact Disc Read Only Memory), CD-RW (compact disc-rewritable), DVD(Digital Versatile Disc), BD(Blu-ray Disc), 기타 비-일시적 광학 매체 등을 포함한다. 이러한 비휘발성 컴퓨터 판독가능 저장 매체는 또한 ROM(read-only memory), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리(예컨대, 시리얼, NAND, NOR 등), MMC(multimedia memory cards), SD(secure digital) 메모리 카드, 스마트미디어 카드(SmartMedia cards), 컴팩플래시(CompactFlash: CF) 카드, 메모리 스틱 등을 포함할 수 있다. 또한, 비휘발성 컴퓨터 판독가능 저장 매체는 CBRAM (conductive-bridging random access memory), PRAM (phase-change random access memory), FeRAM(ferroelectric random-access memory), 비휘발성 랜덤 액세스 메모리(NVRAM), 자기 저항성 랜덤 액세스 메모리 (MRAM), 저항성 랜덤 액세스 메모리 (RRAM), SONOS(silicon-Oxide-Nitride-Oxide-Silicon) 메모리, 플로팅 접합 게이트 랜덤 액세스 메모리 (FJG RAM), 밀리피드(Millipede) 메모리, 레이스트랙(racetrack) 메모리 등을 또한 포함할 수 있다.
일 실시예에서, 휘발성 컴퓨터 판독가능 저장 매체는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 고속 페이지 모드 동적 랜덤 액세스 메모리(FPM DRAM), EDO DRAM(extended data-out dynamic random access memory), 동기식 동적 랜덤 액세스 메모리 (SDRAM), DDR SDRAM(double data rate synchronous dynamic random access memory), DDR2 SDRAM(double data rate type two synchronous dynamic random access memory), DDR3 SDRAM(double data rate type three synchronous dynamic random access memory), RDRAM(Rambus dynamic random access memory), TTRAM(Twin Transistor RAM), T-RAM(Thyristor RAM), 제로 커패시터 RAM (Zero-capacitor RAM), RIMM(Rambus in-line memory component), DIMM(dual in-line memory component), SIMM(single in-line memory component), 비디오 랜덤 액세스 메모리(VRAM), 캐시 메모리 (다양한 레벨 포함), 플래시 메모리, 레지스터 메모리 등을 포함할 수 있다. 실시예들이 컴퓨터 판독가능 저장 매체를 사용하는 것으로 설명되는 경우, 다른 타입의 컴퓨터 판독가능 저장 매체가 전술 한 컴퓨터 판독가능 저장 매체에 추가하여 대체되거나 사용될 수 있다는 것이 이해될 것이다.
이해되는 바와 같이, 본 개시의 다양한 실시예들은 또한 방법, 장치, 시스템, 컴퓨팅 장치, 컴퓨팅 엔티티 등으로 구현될 수 있다. 이와 같이, 본 개시의 실시예들은 특정 단계들 또는 동작들을 수행하기 위해 컴퓨터 판독가능 저장 매체에 저장된 명령어들을 실행하는 장치, 시스템, 컴퓨팅 장치, 컴퓨팅 엔티티 등의 형태를 취할 수 있다. 따라서, 본 개시의 실시예들은 또한 전체 하드웨어 실시예, 전체 컴퓨터 프로그램 제품 실시예, 및/또는 특정 단계 또는 동작을 수행하는 컴퓨터 프로그램 제품 및 하드웨어의 조합을 포함하는 실시예의 형태를 취할 수 있다.
본 개시의 실시예는 블록도 및 흐름도 도시를 참조하여 이하 설명된다. 따라서, 블록도 및 순서도 도시의 각 블록은 실행을 위해 컴퓨터 판독가능 저장 매체 상의 명령어, 동작, 단계 및 상호 교환적으로 사용되는 유사 단어들(예컨대, 실행가능한 명령어, 실행을 위한 명령어, 프로그램 코드 등)을 수행하는 컴퓨터 프로그램 제품, 전체 하드웨어 실시예, 하드웨어 및 컴퓨터 프로그램 제품의 조합, 및/또는 장치, 시스템, 컴퓨팅 장치, 컴퓨팅 엔티티 등의 형태로 구현될 수 있음이 이해되어야 한다. 예를 들어, 코드의 검색, 로딩(loading) 및 실행은 한 번에 하나의 명령어가 검색되고, 로딩되고 및 실행되도록 순차적으로 수행될 수 있다. 일부 예시적인 실시예에서, 검색, 로딩 및/또는 실행은 다수의 명령어가 함께 검색, 로딩 및/또는 실행되도록 병렬로 수행될 수 있다. 따라서, 이러한 실시예들은 블록도 및 흐름도 도시들에 명시된 단계 또는 동작을 수행하는 구체적으로-구성된 기계(machine)을 생산할 수 있다. 따라서, 블록도 및 흐름도 도시들은 명시된 명령어들, 동작들 또는 단계들은 수행하기 위한 실시예들의 다양한 조합을 지원한다.
환경 데이터를 수집하기 위해 다양한 어플리케이션에서 센서가 점점 더 많이 사용되고 있다. 예를 들어, 센서는 자율 주행 차량에 사용될 수 있으며, 자율 주행 차량에서 차량 전체에 퍼져 있는 수십 개의 센서들은 다양한 환경 및 차량 데이터를 캡처하고 해당 데이터를 예컨대, 자율 주행 차량의 주행 경로를 결정하기 위해 많은 동작들을 수행하는 하나 이상의 제어 시스템에 제공한다. 추가 예시들에서, 자율 주행 차량들의 군집(fleet)은 센서들을 통해 차량 위치, 차량 상태, 차량 헬스 상태(vehicle health status) 및 운행 결정과 같은 관련 차량 데이터를 업데이트할 수 있다. 이러한 차량 데이터는 관리용 군집 관리 소프트웨어에서 군집 운영 기능들을 수행하는 데 사용될 수 있다. 또 다른 예시로, 지진 센서가 지진 감지 및 무기 테스트 모니터링을 위한 지진 데이터를 제공하는데 사용될 수 있다. 또한, 센서들은 보안 목적으로 위치를 모니터링하는데 사용될 수 있다. 녹화된 동영상은 지속적으로 모니터링 시스템에 공급되어 이상 상황을 감지할 수 있다. 전술한 예시 사용 케이스에서, 센서들은 비교적 많은 양의 데이터를 수집하고 전송하도록 구성될 수 있다. 따라서 이러한 센서-생성된 데이터의 저장 및 처리 효율성을 높이기 위한 시스템, 방법 및 장치가 필요하다.
개시된 시스템 및 방법은 일반적으로 하나 이상의 센서로부터 데이터를 수집하고, 데이터를 저장하고, (예를 들어, 호스트상의 어플리케이션을 통해) 센서 데이터의 사용자가 데이터를 이용할 수 있도록 하는 효율성을 개선하는 것에 관한 것이다. 일부 실시예에서, 다수의 센서들을 통한 데이터 수집은 추가적인 컴퓨팅(예컨대, 프로세서) 필요요건으로 데이터의 양을 기하 급수적으로 증가시킬 수 있다. 더욱이, 도 1과 관련하여 추가로 도시되고 설명된 바와 같이, 센서 데이터의 전송은 중간 라우팅 및/또는 처리를 위해 중간 게이트웨이에 직면할 수 있고, 예컨대, 프로토콜 변환 동안 지연을 추가할 수 있다. 또한, 비교적 많은 양의 데이터를 장거리로 전송하면 기반의 지원 장치의 에너지 및 전력 소비를 증가시킬 수 있다.
일부 실시예에서, 개시된 시스템은 NVMe-oF (non-volatile-memory-express over fabric) 및/또는 이더넷 프로토콜을 포함하지만 이에 제한되지 않는 다양한 네트워크된 프로토콜을 사용하여 센서들, 저장 장치들 및 호스트들 사이에 연결 및 네트워크 인프라를 제공할 수 있다. 일부 실시예에서, 센서 데이터는 데이터를 하나 이상의 호스트로 전송하기 전에 저장 장치에 의해 (예컨대, 저장 장치와 관련된 프로세서, FPGA 등을 통해) 사전 처리되거나 필터링될 수 있으며, 데이터의 처리 효율성을 더 향상시킬 수 있다.
다양한 실시예들에서, 개시된 시스템은 예를 들어 NVMe-oF 프로토콜을 사용함으로써 추가 프로세서(예컨대, 중앙 처리 장치, CPU)를 거치지 않고 센서들로부터 저장 장치로 데이터를 직접 전달하는 것을 가능하게 할 수 있다. 또한, 저장 장치의 컨트롤러는 데이터 기탁(deposition) 프로세스를 모니터링하는 역할을 할 수 있으며, 데이터 기탁 리포트(data deposition reports)를 예를 들어 비동기 방식으로 호스트의 컴퓨트 CPU에 전송하도록 구성될 수 있다. 추가로, 저장 장치는 호스트의 컴퓨트 CPU에 대응하는 알림을 제공하기 전에 기탁된 데이터에 대한 데이터 처리를 수행하도록 구성될 수 있다.
다양한 실시예에서, 지속적 데이터(persistent data)를 포함하는 센서 및 저장 장치는 서로로부터 임의의 거리(예를 들어, 수 피트 또는 미터에서 수 킬로미터 이상)에 지리적으로 위치할 수 있다. 또한 센서는 데이터를 독립적으로 캡처 및 수집하도록 구성될 수 있으며 데이터는 추가 사용을 위해 처리되거나, 분석되거나, 압축되거나 및 기탁될 수 있다.
전술한 바와 같이, 센서들는 NVMe-oF 프로토콜을 구현하도록 구성될 수 있다. 따라서, 일부 측면에서 센서들은 저장 장치들에 대해 원격 호스트로서 역할을 할 수 있다. 또한, 저장 장치는 다수의 호스트들을 지원하기 위해 하나 이상의 NVMe 컨트롤러들을 포함할 수 있다. 일 실시예에서, 저장 장치들은 데이터 가용성을 컴퓨트 호스트들에 비동기식으로 통신할 수 있고, 그에 따라 데이터를 전송할 수 있다. 본 개시는 센서 호스트와 저장 장치 사이에 사용되는 저장 프로토콜의 하나의 옵션 및/또는 예시로서 NVMe-oF 및 NVMe와 관련하여 사용되는 실시예를 주로 설명하지만, 여기에 설명된 실시예들은 또한 임의의 적합한 현재의 또는 저장 프로토콜들에 적어도 부분적으로 적용가능하다.
추가 예시들에서 NVMe-oF-인에이블된 센서들은 저장 장치 발견을 위해 컨트롤러 및 서비스 방법론을 구현할 수 있다. 예를 들어, 센서는 저장 장치와 관련된 저장 컨트롤러에 대응하는 미리 결정된 발견 주소를 질의할 수 있다. 발견 서비스는 NVMe-oF 인에이블된 저장 장치에 스토리지에 대한 센서 요구사항을 통지할 수 있다. 따라서, 센서는 원격 네트워크-연결된 NVMe-oF 인에이블된 저장 장치에 직접 연결할 수 있다. 일부 실시예에서, 센서들은 저장 장치에서 하나 이상의 이름공간을 이용할 수 있으며, 이는 도 5와 관련하여 추가로 도시되고 설명된다.
일부 실시예에서, 센서는 데이터를 압축하고 압축된 데이터를 저장 장치로 전송하도록 구성될 수 있는 반면, 저장 장치는 필요에 따라 데이터를 압축 해제하도록 구성될 수 있다. 전술한 바와 같이, 저장 장치는 컴퓨트 호스트에 의한 처리를 위해 데이터의 가용성을 컴퓨트 호스트에 통지하기 전에 데이터 처리를 수행할 수 있다. 또한, 저장 장치는 센서 데이터와 관련된 가상화된 파일로서 이름공간을 하나 이상의 컴퓨트 호스트들에 제공할 수 있다.
전술한 바와 같이, 센서들은 다양한 사용 케이스들 및 배치 시나리오를 가질 수 있다. 본 개시의 일부 측면들에서, 센서들은 두 가지 타입의 연결을 갖도록 광범위하게 구성될 수 있다. 예를 들어, 도 1은 본 개시의 예시적인 실시예들에 따른, 일반적인 네트워크 환경에서 사용되는 센서들에 대한 데이터 흐름을 나타낸 다이어그램 (100)을 도시한다. 제1 배치 시나리오(first deployment scenario)에서, 센서(102)와 같은 센서는 센서 데이터를 판독하고 네트워크를 통해 센서 게이트웨이(104)로 데이터를 전송하는 컴퓨트 프로세서(미도시)에 연결될 수 있다. 제2 배치 시나리오에서, 센서(102)와 같은 센서는 데이터를 디지털 스트림으로 변환하고 추가 처리 또는 수집을 위해 네트워크를 통해 디지털화된 데이터를 센서 게이트웨이(104)로 전달하는 추가 하드웨어를 가질 수 있다. 따라서, 게이트웨이(104)는 데이터를 재구성하고 데이터를 처리하기 위해 네트워크를 통해 더 큰 컴퓨트 설정(compute setup)으로 전송할 수 있다. 이러한 구성의 네트워크에는 다양한 엔드 포인트들이 있을 수 있으며, 각 엔드 포인트는 데이터 처리의 전체 지연시간 및 저장에 추가될 수 있는 추가의 컴퓨트 및 저장 자원들을 잠재적으로 필요로 한다. 일부 예시들에서, 데이터는 이용 가능한 인프라에 기초하여 클라우드(106) 환경에서 구현되는 최종 컴퓨트를 거칠 수 있다. 센서의 데이터 경로에서 지연을 완화하기 위해, 에지 컴퓨트(도시되지 않음)은 클라우드(106)로 전달하기 전에 데이터를 적어도 부분적으로 처리할 수 있다. 그러나, 에지 컴퓨트에 의한 처리는 관련 지연을 가질 수 있으며, 추가 하드웨어를 필요로 할 수 있다. 일부 측면에서, 이러한 지연 문제는 에지 네트워크에서 직접 클라우드 컴퓨트의 적어도 일부 기능을 수행함으로써 완화될 수 있다. 그러나 에지 컴퓨팅이 대기시간을 어느 정도 완화하더라도 이러한 에지 컴퓨팅은 센서 데이터를 처리하는데 네트워크의 추가 컴퓨트 및 처리 필요요건을 해결하지 못할 수 있다. 대기시간이 짧은 글로벌 규모의 위성-기반 네트워크 연결의 가능성으로 인해 센서 데이터 전달이 빠르게 증가하고 광활한 거리를 커버하여, 예를 들어 에너지 및 비용 효율성 문제로 인해 오지의 및 미개발 지역에서 컴퓨트 데이터센터를 생성할 수 있다. 따라서, 개시된 시스템은 중앙 코어 네트워크(예컨대, 클라우드) 또는 에지 네트워크로부터 멀리 떨어진 위치에서 각각의 데이터를 전송하는 하나 이상의 센서들로부터 비교적 많은 양의 데이터를 수집하는 것과 관련된 처리 및 저장 지연의 적어도 일부를 완화하는 역할을 할 수 있다.
일부 실시예에서, 개시된 실시예는 다양한 중간 네트워크 홉에서 컴퓨트-기반 대기시간 및/또는 센서의 데이터 경로에서 게이트웨이, 릴레이 등의 다양한 요구사항의 준수에 의한 대기시간의 일부를 완화하기 위해 SSD(solid-state device)와 같은 저장 장치와 (이차 장치들의 개입 없이) 직접 통신할 수 있는 센서를 포함 할 수 있다. 일부 실시예에서, 센서들 및 저장 장치들은 서로 다른 지리적 위치(예를 들어, 미리 결정된 임계보다 더 큰 거리)에서 공간적으로 떨어져 위치할 수 있다.
다양한 실시예에서, 주어진 환경에 배치된 센서들은 독립적으로 데이터를 캡처하도록 구성될 수 있다. 그런 다음, 이러한 데이터는 처리되거나, 저장되거나, 집계되거나, 필터링되거나, 분석되거나 할 수 있고, 향후 사용을 위해 기탁될 수 있다. 일부 측면에서, 센서에 의해 생성된 데이터는 저장 장치와 관련된 프로세서에 의해 수신될 수 있고 영구 저장 장치(persistent storage device)에 저장될 수 있다. 센서의 개수와 캡처된 데이터의 양이 기하 급수적으로 증가하면 상대적으로 많은 양의 데이터를 처리하는 데 필요한 CPU 자원들이 컴퓨팅적으로 에너지적으로 비용이 많이 들 수 있다. 전술한 바와 같이, 본 개시의 실시예들은 CPU 자원 니즈 및 초래된 지연을 감소하거나 또는 제거할 수 있는 시스템 아키텍처를 포함한다.
개시된 시스템은 SSD와 같은 저장 장치와 직접 통신하기 위해 NVMe-oF (Non-Volatile Memory over Fabric) 프로토콜을 포함하지만 이에 제한되지 않는 임의의 적합한 장치-인터페이스 사양 및/또는 프로토콜을 사용하는 센서를 포함할 수 있다. 일부 예시들에서, NVMe-oF 프로토콜은 이더넷, 원격 직접 메모리 액세스(RDMA), iWARP, 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP), RoCE (RDMA over Converged Ethernet), RoCE 버전 2 (또는 임의의 적절한 버전), Infiniband, 이들의 조합 등의 유선 프로토콜을 포함하지만 이에 제한되지 않는 임의의 적절한 전송 프로토콜 상에서 수행될 수 있다. 또한, NVMe-oF 프로토콜은 3G, 4G, 5G, Wi-Fi, Bluetooth, BLE(Bluetooth low energy), 이들의 조합 등과 같은 무선 프로토콜을 포함하지만 이에 제한되지 않는 다양한 전송 프로토콜을 상에서 수행될 수 있다. 다양한 측면에서, 개시된 시스템은 사용되는 기저의(underlying) 네트워크 전송 프로토콜에 대해 애그노스틱(agnostic)할 수 있고 임의의 적절한 네트워크 프로토콜을 사용하여 동작하도록 구성될 수 있다.
일부 실시예에서, 센서들은 저장 장치(예컨대, SSD)와 연결될 수 있고 수집된 데이터를 저장 장치의 지정된 전용의 이름공간에 기탁할 수 있다. 일부 실시예에서, 저장 장치는 하나 이상의 전용 이름공간에서 센서 데이터의 기탁(deposition)을 모니터링하도록 구성될 수 있고 그에 따라 하나 이상의 호스트에 (예컨대, 도 6 및 7과 관련하여 도시되고 설명될 대응하는 메시지를 전송함으로써) 통지할 수 있다. 저장 장치 및 호스트는 호스트에서 사전에 발행하고 센서에 의해 데이터가 기탁된 후 SSD에 의해 완료된 비동기 이벤트 알림 커맨드들을 사용할 수 있다. 또한, 호스트는 호스트 및/또는 관련 장치에서 실행되는 어플리케이션 니즈(needs)에 기초하여 데이터 분석 및 처리 기능들을 수행할 수 있다.
전술된 바와 같이, 개시된 시스템 및 대응하는 시스템 아키텍처는 CPU 자원 사용 필요요건을 감소시키는 역할을 할 수 있으며, 따라서 개시된 실시예들 중 하나 이상을 채용하지 않는 기술들과 비교하여 상대적으로 더 많은 양의 센서 데이터를 처리하는데 사용될 수 있다. 개시된 시스템은 이러한 데이터 통신 및/또는 대응하는 네트워크 상의 상기 장치들와 관련된 처리 지연을 사용하여 어플리케이션과 관련된 지연을 더욱 감소시킬 수 있다.
도 2는 본 개시의 예시적인 실시예들에 따른, 네트워크화된 환경에서 저장-효율적인 센서들을 위한 예시적인 시스템 아키텍처의 다이어그램을 도시한다. 예를 들어,도 2는 예시적인 무선 센서(202)(예컨대, NVMe-oF 인에이블된 무선 센서), 예시적인 유선 센서(204) (예컨대, NVMe-oF 인에이블된 유선 센서), 센서들 사이의 네트워크(210) 상의 제1 연결 경로(205), 및 저장 장치를 포함하며, 상기 제1 연결 경로(205)를 통해 센서들은 저장 장치(206)로 데이터(208)를 기탁할 수 있다. 다이어그램(200)은 저장 장치(206)에 통신 가능하게 결합된 호스트(212)를 더 도시한다. 호스트(212)는 하나 이상의 어플리케이션들(216)을 관리하거나 실행하도록 구성될 수 있는 운영/파일 시스템 (214)을 포함할 수 있다. 또한, 호스트는 호스트 CPU 또는 다른 처리 능력(미도시)을 포함할 수 있다. 어플리케이션(216)은 예를 들어, SSD(206)에 저장된 데이터 (208)를 판독하기 위해 제2 연결 경로(209) 상에서 SSD(206)로 전송될 수 있는 커맨드들(예컨대, 데이터 판독 커맨드)(207)을 생성할 수 있으며, 상기 데이터는 센서에 의해 SSD(206) 상에 적어도 부분적으로 사전에 기탁된다. 일부 예시들에서, 저장 장치(206) 및/또는 호스트(212)는 이더넷 연결(213)(또는 임의의 다른 적절한 연결)을 통해 네트워크(210)에 연결될 수 있다. 일부 예시들에서, SSD(206)는 예컨대, 알림(예를 들어, 센서(202 또는 204)로부터 데이터를 수신할 때 데이터 수신된 알림)을 전송하기 위해 제3 연결 경로(211)를 통해 호스트(212)와 통신할 수 있다.
일부 예시들에서, 무선 센서(202)는 기지국(220) 또는 유사한 엔티티에 대해 무선 네트워크(219)(예를 들어, Wi-Fi, 블루투스, 셀룰러, 5G 등) 상에서 통신할 수 있다. 기지국(220)은 무선 네트워크 제어기(RNC)(222)(또는 유사한 엔티티) 및 게이트웨이(224)와 통신하여 네트워크(210)를 통해 SSD(206)로 또는 SSD(206)로부터 데이터를 전송하도록 구성될 수 있다.
전술한 바와 같이, 일 실시예에서, 센서(예를 들어, 센서(202 또는 204))는 센서 및 저장 장치가 비교적 멀리 떨어진 지리적 위치에 위치하더라도 저장 장치(206)와 직접 통신하도록 구성될 수 있다. 센서들은 각각의 환경에서 데이터를 독립적으로 캡처하고 수집하도록 구성될 수 있다. 예를 들어, 센서는 수압 데이터를 수집하고 해양 연안 환경에 배치되는 현장 센서일 수 있으며, 저장 장치는 육지의 안전한 사무실에 위치될 수 있다. 일부 실시예에서, 센서에 의해 생성된 데이터는 저장 장치(206)에서 처리 및/또는 지속적으로 저장될 필요가 있을 수 있다. 센서에 의해 캡처된 데이터는 센서의 환경의 다양한 물리적 파라미터의 측정치를 포함할 수 있으며, 센서 데이터는 이벤트가 발생했을 때 이벤트의 기록을 포함하거나 둘 다 포함할 수 있다. 센서 데이터의 일부 비제한적인 예시들은 온도 데이터, 압력 데이터, 수질 데이터, 근접 데이터, 화학 데이터, 모션 데이터, 전자기장 데이터, 습도 데이터, 사진 파일, 비디오 파일, 오디오 파일, 이들의 조합 등을 포함한다. 개시된 시스템은 상이한 환경 속성들을 측정하는 다양한 서로 다른 타입의 센서들을 사용하여 동작할 수 있다. 또한, 개시된 시스템은 다양한 서로 다른 데이터 타입들에 대해 동작할 수 있다. 따라서, 개시된 시스템은 일반적으로 센서 타입 또는 캡처되는 데이터의 타입에 대해 애그노스틱할 수 있다.
일부 측면에서, 센서들(예를 들어, 센서 (202 또는 204))는 데이터를 프로세서(도시되지 않음)로 전달할 수 있으며, 그런 다음 프로세서는 저장 장치(예를 들어, SSD)에 상기 데이터를 저장할 수 있다. 그러나 센서의 개수와 캡처된 데이터의 양이 기하급수적으로 증가하면 이러한 대량의 데이터를 처리하는데 필요한 프로세서 지원이 컴퓨팅적으로 에너지적으로 비용이 많이 들 수 있다. 또한, 처리 및/또는 데이터 전송 외에 추가 컴퓨트로 인해 센서와 프로세서 사이의 다양한 중간 노드들 사이에 추가 대기 시간이 초래될 수 있다. 전술한 바와 같이, 추가 컴퓨트 니즈로 인해 소비되는 에너지가 증가할 수 있다. 따라서, 다이어그램(200)의 개시된 시스템 아키텍처는 이러한 처리 자원을 줄이거나 제거하는 역할을 할 수 있다.
일부 실시예에서, 센서(예를 들어, 센서(202 또는 204))는 데이터를 캡쳐할 수 있고, 하나 이상의 전처리 동작(예를 들어, 필터링, 업-샘플링, 다운-샘플링, 노이즈 제거, 이들의 조합 등)을 네트워크(210) 상에서 데이터를 전송하기 전에 데이터에 대해 수행할 수 있다. 또한, 개시된 시스템은 네트워크(210) 상에서 전송 전에 미리 결정된 양의 데이터가 캡처되고 버퍼링될 때까지 데이터 전송을 연기할 수 있는 센서(예를 들어, 센서(202 또는 204))와 함께 동작할 수 있고, 또는 개시된 시스템은 네트워크(210) 상에서 비교적 빠르게 (예를 들어, 미리 결정된 양 미만의 지연으로) 데이터를 전송하는 센서와 함께 동작할 수 있다. 따라서, 센서는 데이터를 연속적으로 전송하거나 (예컨대, 스트림 데이터) 또는 미리 결정된 단위(예컨대, 청크 크기)로 데이터를 전송할 수 있다. 동작(연속 또는 버퍼링된 동작)의 모드에 관계없이, 센서가 캡처 된 데이터를 전송할 준비가 되면 상기 센서는 지정된 저장 장치(예컨대, 저장 장치(206))와 연결을 수립한 다음 캡처된 데이터(208)를 네트워크(210) 상에서 저장 장치로 전송할 수 있다.
일부 실시예에서, 센서(예컨대, 센서 (202 또는 204))는 NVMe-oF 연결 또는 저장 장치(예를 들어, SSD를 포함하는 저장 장치(206))와의 연관(association)을 수립할 수 있다. 전술한 바와 같이, NVMe-oF 프로토콜은 이더넷, RDMA, iWARP, TCP/IP, RoCE, RoCEv2, 인피니밴드(Infiniband), 이들의 조합 등의 다양한 전송 프로토콜, 및/또는 5G, Wi-Fi, 블루투스, BLE, 이들의 조합 등의 무선 프로토콜 상에서 수행될 수 있다. 개시된 시스템의 실시예가 전술한 프로토콜들과 함께 사용될 수 있지만, 실시예들은 사용되는 네트워크 전송 프로토콜에 대해 애그노스틱할 수 있음을 이해할 것이다.
일 실시예에서, 저장 장치(예를 들어, 저장 장치(206))에 의해 사용되는 전송 및 네트워크 파라미터들은 저장 장치와 센서(예를 들어, 센서(202 또는 204)) 사이의 통신과 관련하여 결정되고 사전-구성될 수 있으며, 또는 센서 자체에서 구성될 수 있다. 다른 실시예에서, 센서는 사용될 저장 장치의 전송 네트워크 세부사항을 획득하기 위해 발견 서비스(discovery service)를 사용할 수 있다. 예를 들어, 발견 서비스는 이하 도 5를 참초하여 추가로 도시되고 설명된 바와 같이 센서 및 센서 데이터-기반 컴퓨트 호스트와 함께 동작하는 저장 장치 내에서 또는 이와 통신하여 컨트롤러(예를 들어, NVMe 인에이블된 컨트롤러)에 의해 적어도 부분적으로 수행될 수 있다.
일부 실시예에서, 개시된 시스템은 컨트롤러의 임의의 적절한 구현으로 동작할 수 있고, 구현은 전송 파라미터에 기초하여 달라질 수 있다. 전술한 바와 같이, 센서(예를 들어, 센서 (202 또는 204))는 NVMe-oF 프로토콜을 사용하여 저장 장치(예를 들어, 저장 장치 (206))와 통신할 수 있다. 따라서, 센서는 캡처된 데이터를 저장하는 저장 장치와 통신하는 호스트로서 역할을 수행할 수 있다. 연결이 수립되면, 센서가 저장 장치에 있는 컨트롤러와 통신하여 캡처된 데이터를 유지할 수 있다. 도 4 및 5와 관련하여 추가로 도시되고 설명된 바와 같이, 초기 구성 및 초기화 후에 센서는 특정 이름공간 식별자와 함께 NVMe 쓰기 커맨드를 전송할 수 있다. 다른 실시예에서, 센서는 NVMe 스트림 특징(Streams feature)을 사용하여 데이터를 쓸 수 있다. 일부 측면에서, 이러한 스트림 특징은 호스트가 컨트롤러에 대해 쓰기 커맨드에서 지정된 논리 블록들이 연관된 데이터의 하나의 그룹의 일부임을 표시할 수 있게 할 수 있다. 또한, 여기에서 사용되는 바와 같이, 스트림은 NVMe-기반 스트림 또는 임의의 다른 적절한 프로토콜(예를 들어, 스토리지-기반 프로토콜 또는 네트워킹 프로토콜)을 사용하는 스트림을 참조할 수 있다. 따라서 캡처된 데이터는 저장 장치의 플래시 매체의 특정 위치(예 : 논리 블록 주소, LBA)에 쓰여질 수 있다. 다른 예시들에서, 저장 장치는 이하 도 7과 관련하여 추가로 도시되고 설명된 바와 같이 완료 상태를 갖는 완료 엔트리를 센서로 다시 전송할 수 있다. 데이터의 주어진 부분을 전송한 후, 센서는 더 많은 데이터를 전송하거나 미리 결정된 기간 동안 연결을 끊거나 향후 데이터 전송을 위해 연결을 활성 상태로 유지할 수 있다. 이러한 결정은 네트워크 가용성, 대역폭 사용, 저장 장치의 사용 가능한 스토리지, 데이터의 우선 순위, SLA(Service Level Agreement), 서비스 품질(QoS) 요구사항, 이들의 조합 등을 포함하지만 이에 제한되지 않는 하나 이상의 팩터(factor)에 기반한 미리 결정된 정책을 기반으로 수행 될 수 있다.
다양한 실시예에서, 개시된 시스템은 저장 장치의 컨트롤러 (미도시)가 효율적인 센서 데이터 저장 및 처리를 용이하게 하기 위한 하나 이상의 추가 특징을 구현하도록 구성될 수 있도록 구성될 수 있다. 예를 들어, 저장 장치 컨트롤러에 의해 지원되는 특징들(features)중 하나는 이하 도 5와 관련하여 추가로 도시되고 설명된 바와 같이 다수의 NVMe 컨트롤러들을 지원하는 것을 포함할 수 있다. 예를 들어, 저장 장치 (206)는 다수의 호스트들(예를 들어, 호스트(212)와 유사하지만 반드시 동일하지는 않음)과 통신하기 위해 다수의 NVMe 컨트롤러들을 지원하도록 구성될 수 있다. 일부 측면에서, 호스트는 저장 장치(206) 등의 주어진 저장 장치로 데이터를 기탁하는 센서들(예를 들어, 센서들(202 및 204))과 연관될 수 있다. 또한, 호스트(212)는 저장 장치(206)로부터 검색되어진 캡처된 데이터의 처리 및 분석을 담당할 수 있는 컴퓨트 프로세서를 포함할 수 있다. 일부 측면에서, 센서들(예컨대, 센서들(202 및 204))이 캡처된 데이터를 저장 장치(206)의 지정된 이름공간 또는 스트림으로 기탁함에 따라, 저장 장치의 컨트롤러는 데이터 기탁 프로세스를 모니터링하고 추적할 수 있다. 예를 들어, 저장 장치의 컨트롤러는 저장 장치(206)에 기록되는 데이터를 추적할 수 있다. 저장 장치의 컨트롤러는 데이터가 처리에 이용 가능한 것을 호스트(212)에 보고하기 위해 비동기 알림을 사용할 수 있고 호스트(212)의 컴퓨트 프로세서가 데이터 처리 및 분석을 수행할 수 있게 한다. 호스트(212)의 컴퓨트 프로세서(도시되지 않음)는 다양한 실시예에서 저장 장치의 컨트롤러에 미결한 데이터 기탁된 리포트 커맨드를 호스트, 발행 및 유지할 수 있다. 이러한 커맨드들은 벤더-정의된 NVMe 커맨드 등의 적합한 벤더 커맨드를 포함할 수 있으며, 벤더-정의된 NVMe 커맨드는 저장 장치로부터 비동기식으로 데이터-기탁된 알림을 획득하는데 컴퓨트 호스트에 의해 사용될 수 있다.
일부 실시예에서, 지정된 센서(206)가 저장 장치(206)의 지정된 이름공간 또는 스트림으로 데이터를 기탁할 때, 벤더-정의된 커맨드와 같은 미해결 커맨드들이 저장 장치의 컨트롤러에 의해 완료되거나 실행될 수 있다. 다른 실시예에서, 저장 장치의 컨트롤러는 특정 양의 데이터가 저장 장치(206)에 기탁된 후에 비동기 알림을 호스트(212)로 전송하도록 구성될 수 있다. 또 다른 실시예에서, 저장 장치의 컨트롤러는 시간, 날짜, 호스트 ID, 이름공간 식별자(NSID), 스트림 식별자, 매체 액세스 제어 (MAC) ID, 다양한 TCP/IP, 스토리지 및 네트워크 파라미터, 이들의 조합 등을 포함하지만 이에 제한되지 않는 다양한 파라미터 및 정책에 기반하여 호스트(212)에 비동기 알림을 전송할 수 있다. 일부 실시예에서, 알림을 전송하는 방법을 나타내는 정책은 스토리지 관리자 안내 하에 저장 관리 관련 장치(예를 들어, 저장 장치의 섀시와 연관된 BMC(baseboard management component) 장치, 도시되지 않음)에 의해 설정될 수 있으며 또는 정책은 저장 장치(206)에 미리 구성될 수 있다. 다른 실시예에서, 저장 장치의 컨트롤러는 발견 컨트롤러 컴포넌트(도시되지 않음)상의 서비스로부터 수신된 데이터에 기초하여 호스트(212)에 비동기 알림을 전송할 수 있으며, 발견 컨트롤러 컴포넌트는 상기 정보를 듣고 있는 컴퓨트 호스트(도시되지 않음)에 분배할 수 있다.
전술한 바와 같이, 다양한 실시예에서, 센서들(예를 들어, 센서(202 및/또는 204))은 온도, 압력, 습도 등을 포함하지만 이에 제한되지 않는 하나 이상의 환경 물리적 파라미터를 측정하도록 구성될 수 있다. 일부 예시에서, 센서는 이벤트, 패턴 및/또는 이벤트 시퀀스를 모니터링할 수 있다. 예컨대, 일부 센서들(예컨대, 카메라를 포함한 센서)은 시각적 데이터를 제공할 수 있다. 다른 예에서, 일부 센서들(예컨대, 마이크를 포함하는 센서)은 오디오 데이터를 수집할 수 있다. 따라서, 센서는 다양한 상이한 어플리케이션에 적합한 광범위한 장치 타입을 포함할 수 있으며, 이들 중 일부는 도 8 내지 11과 관련하여 도시되고 설명된다.
따라서, 센서들(예를 들어, 센서(202 또는 204))은 추가 처리 및 분석을 위해 제공하는 데이터의 일부 형태를 수집하는 임의의 적절한 장치를 포함할 수 있다. 다시 말해, 센서는 컴퓨트 장치 및/또는 저장 장치에 의해 소비 (예컨대, 저장 및/또는 처리)될 데이터를 수집하도록 구성될 수 있다. 따라서, 일부 예시에서, 센서는 임의의 적절한 기술에 의해 컴퓨트 및/또는 데이터 저장 장치에 통신가능하게 연결될 수 있다. 일부 실시예에서, 센서는 LAN(Local Area Network), WAN (Wide Area Network) 등과 같은 네트워크를 포함하지만 이에 제한되지 않는 임의의 적절한 네트워크를 통해 연결될 수 있다. 또 다른 측면에서, 센서는 무선 네트워크(예를 들어, 안테나를 통해) 또는 네트워크에 연결하는 유선 연결을 사용하도록 구성될 수 있다.
도 3은 본 개시의 예시적인 실시예에 따른, 개시된 시스템과 관련하여 사용하기 위한 예시적인 센서의 다이어그램(300)을 도시한다. 예를 들어,도 3은 호스트 인터페이스 NVMe-oF (312)로 라벨링된 NVMe-oF 프로토콜을 사용하여 통신하기 위한 인터페이스(예를 들어, 로직 및/또는 회로)를 포함하는 센서(302)의 예시적인 아키텍처의 다이어그램(300)을 도시한다. 도 3은 센서(302)(예를 들어, 상기 도 2와 관련하여 도시되고 설명된 무선센서(202) 또는 유선센서(204)와 유사하지만 반드시 동일하지는 않음)의 추가 세부사항을 포함하는 다이어그램 (300)을 도시한다. 일부 실시예에서, 센서 (302)는 감지 소자(304), 아날로그-디지털 변환기(ADC)(306), 전처리기(preprocessor)(308), 데이터 버퍼(310), 호스트 인터페이스(312) 및 네트워크 인터페이스(314)를 포함할 수 있으며, 이에 제한되지는 않는다. 또한, 무선으로 통신하는 센서(302)의 경우, 센서(302)는 데이터를 저장 장치로 전송하기 위해, 예를 들어 네트워크 인터페이스(314)(세부사항은 도시되지 않음)의 대응하는 회로를 이용하여 무선 신호(219)를 전송할 수 있다.
일부 실시예에서, 센서(302)의 감지 소자(304)는 실제 환경으로부터 데이터를 측정하거나 캡처하도록 구성될 수 있다. 예를 들어, 감지 소자(304)는 감지되는 실제 환경 파라미터(들)에 대응하는 아날로그 신호를 생성하도록 구성될 수 있다. 일부 실시예에서, 캡처된 데이터는 예를 들어 아날로그-디지털 변환기(ADC)(306)를 사용하여 디지털 포맷으로 변환될 수 있는 아날로그 원시 데이터(analog raw data)를 포함할 수 있다. 일부 실시예에서, 전처리기(308)는 필터링, 스케일링, 정규화, 잡음 제거 등을 포함하지만 이에 제한되지 않는 다양한 기능들에 대한 원시 데이터를 처리하는 데 사용될 수 있다. 전처리된 데이터는 데이터 버퍼(310)에 저장될 수 있다. 호스트 인터페이스(예를 들어, 호스트 인터페이스 NVMe-oF(312))는 네트워크 인터페이스 (314)를 통해 네트워크(상기 도 2과 관련하여 더 도시되고 설명된 네트워크(210)와 같은 이더넷-기반 네트워크) 상에서 지정된 저장 장치와의 연결을 수립하는데 구성될 수 있다. 일부 실시예에서, 센서(302)는 하나 이상의 저장 장치(예컨대, 센서와 통신하는 SSD(들))와 연관된 특정 정보를 결정하기 위해 임의의 적절한 발견 서비스를 사용할 수 있다.
연결이 수립되면, 센서(302)는 데이터를 저장 장치(예를 들어, 상기 도 2와 관련하여 도시되고 설명된 SSD(206))로 전송하기 위해 커맨드들(예를 들어, NVMe-기반 쓰기 커맨드)을 전송할 수 있다. 이에 의해, 센서(302)는 저장 장치에 대한 원격 호스트로서 기능할 수 있다. 일부 실시예에서, 저장 장치(206)는 전송된 커맨드(예컨대, NVMe 쓰기 커맨드)과 관련된 완료 엔트리를 센서(302)로 전송하도록 구성될 수 있다. 따라서, 센서(302)는 완료 엔트리의 수신에 기초하여 데이터 버퍼(310)로부터 상기 데이터를 폐기하도록 구성될 수 있다. 다양한 실시예에서, 센서(302)에 의한 저장 장치(들)로의 데이터 기탁 빈도는 예를 들어, 미리 결정된 규칙에 기초하여 사전-구성될 수 있고 및/또는 사용자에 의해 설정될 수 있다. 상기 빈도는 주어진 기간 내에서 동적이거나 정적일 수 있으며, 센서(302)에 의한 데이터 생성 속도, 센서(302)와 저장 장치(들) 사이에 사용가능한 연결 대역폭, 현재 시각(time of day), 데이터의 중요성을 나타내는 데이터와 관련된 태그 등과 같은 다수의 팩터들에 의해 개별적으로 또는 조합하여 결정될 수 있다. 일부 실시예에서, 센서(302) 및/또는 센서와 통신하도록 구성된 장치는 센서에 의한 전송 효율을 증가시키기 위해 임의의 적절한 알고리즘을 사용하여 데이터를 압축할 수 있다. 일부 실시예에서, 데이터의 압축은 데이터 버퍼(310)에 연결될 수 있는 추가 회로(예를 들어, 압축 모듈, 도시되지 않음)를 포함할 수 있다. 또한, 저장 장치 및/또는 저장 장치 내에 있거나 저장 장치와 통신하도록 구성된 장치(예를 들어, 프로세서, FPGA, ASIC)는 저장 장치에 의한 수신시 임의의 적절한 알고리즘을 사용하여 데이터를 압축 해제할 수 있다.
다양한 측면에서, 전술한 바와 같이, 센서(302)는 기저의 네트워크(underlying network)(예를 들어,도 2와 관련하여 도시되고 설명된 네트워크(210)와 유사하지만 반드시 동일하지는 않음)를 통해 데이터를 전송하기 위해 NVMe-oF 프로토콜을 사용할 수 있다. NVMe-oF 프로토콜은 이더넷, RDMA, iWARP, TCP/IP, RoCE, RoCEv2, 인피니밴드(Infiniband) 및/또는 무선 프로토콜을 포함하되 이에 제한되지 않는 다양한 전송 프로토콜 및/또는 4G, 5G, Wi-Fi, 블루투스, BLE 등을 포함하되 이에 제한되지 않는 무선 프로토콜 상에서 수행될 수 있다. 전술한 바와 같이, 개시된 시스템 및 방법은 사용되는 네트워크 전송 프로토콜에 대해 애그노스틱(agnostic)할 수 있다.
도 4는 본 개시의 예시적인 실시예들에 따른 예시적인 센서 동작들을 반영하는 예시적인 방법(400)을 도시한다. 블록 402에서, 센서는 데이터 전송 프로세스(예를 들어, 센서로부터 저장 장치로의 데이터 전송)를 시작할 수 있다. 일부 실시예에서, 센서는 미리 결정된 규칙에 기초하여 데이터를 전송할 수 있다. 예를 들어, 규칙은 미리 정해진 양의 데이터가 센서의 로컬 버퍼를 채울 때, 네트워크 조건이 충족될 때, 특정 타입의 데이터가 검출될 때, 제2 장치가 대응하는 명령어를 제공할 때, 사용자가 대응하는 명령어를 제공할 때, 기지국에 대한 무선 연결이 하루중 특정 시간에서 미리 결정된 임계치보다 더 강할 때, 그 조합 등에서 센서가 데이터 전송을 시작하도록 지시할 수 있다.
블록 404에서, 센서는 (예를 들어, 센서와 관련된 데이터 버퍼 또는 센서와 관련된 다른 저장 모듈에서) 데이터가 이용 가능한지 여부를 결정할 수 있다. 예를 들어, 센서는 센서의 메모리 내에(예 : 데이터 버퍼에) 데이터의 존재를 결정하기 위해 (예를 들어, 센서 컨트롤러 또는 FPGA, ASIC 또는 프로세서를 통해) 센서에 대해 로컬인 임의의 적절한 처리 소자를 사용하여 내부 프로그램을 실행할 수 있다. 또한, 센서는 데이터의 타입과 양을 결정할 수 있으며, 다른 타입의 데이터 보다는 전송을 위해 주어진 타입의 데이터를 우선적으로 처리할 수 있다. 예를 들어, 날씨 조건 또는 지진 조건과 관련된 특정 민감한 측정과 관련된 데이터는 다른 팩터와 관련이 있거나 주어진 임계 값 미만의 데이터 컴포넌트를 갖는 데이터보다 우선적으로 처리될 수 있다.
블록 406에서, 센서는 데이터를 저장 장치로 전송하기 위한 목적으로 데이터 전송 정책이 존재하고 센서 및 저장 장치에 대해 호환되는 지를 결정할 수 있다. 일부 실시예에서, 데이터 전송 정책은 센서 및 저장 장치의 능력 및 특징(예를 들어, 대역폭, 총 저장, 지원되는 네트워크 인터페이스, 지원되는 무선 또는 유선 프로토콜, 이들의 조합 등)과 관련된 정보를 포함할 수 있다. 일부 실시예에서, 데이터 전송 정책은 네트워크 조건, 전송되는 데이터 타입, 네트워크 연결 강도, 하루 중 시간, 그 조합 등을 포함하되 이에 제한되지 않는 시스템의 다양한 속성들을 기반으로 변경 및 협상될 수 있다. 예를 들어, 센서는 데이터 전송 능력을 제공할 수 있고 저장 장치는 데이터 수신 기능을 제공할 수 있으며 데이터 전송과 관련된 하나 이상의 파라미터는 데이터 전송이 효율적으로 및/또는 최적을 방식으로 수행되도록 장치에 의해 결정될 수 있다. 예를 들어 센서가 제1 속도와 제2 속도로 데이터를 전송할 수 있고 제2 속도는 특정 네트워크 조건 하에서 제1 속도보다 크며, 그리고, 저장 장치가 네트워크 조건이 유지되는 상태에서 제2 속도와 제2 속도보다 큰 제3 속도로 데이터를 수신할 수 있는 경우, 센서와 저장 장치는 네트워크 조건이 유지되는 동안 제2 속도로 데이터를 송수신할 것을 결정할 수 있다.
블록 408에서, 센서는 저장 장치와 연관된 임의의 적절한 사전-구성된 설정들 및 관련 정보를 결정할 수 있다. 일 실시예에서, 저장 장치에 의해 사용되는 전송 및 네트워크 파라미터는 센서와 연관되어 또는 센서에 대해 결정되고 사전 구성될 수 있다. 전술한 바와 같이, 전송 및 네트워크 파라미터는 NVMe-oF 프로토콜과 같은 네트워크 프로토콜, 데이터 전송 속도, 데이터 타입, 예컨대, 데이터에 대한 보안을 부여하기 위해 전송되는 데이터 패킷에 포함될 다양한 프레임 특징들, 이들의 조합을 포함할 수 있지만 이에 제한되지는 않는다.
블록 410에서, 센서는 저장 장치의 존재 및/또는 그와 관련된 정보를 결정하기 위해 발견 서비스를 사용할 수 있다. 일부 실시예에서, 센서는 센서 및 센서 데이터-기반 컴퓨트 호스트와 함께 동작하는 NVMe-oF 기반 발견 컨트롤러를 사용하여 발견 서비스를 활용할 수 있다. 다른 실시예에서, 저장 장치는 센서 및 센서 데이터-기반 컴퓨트 호스트와 함께 동작하는 대응하는 발견 컨트롤러를 가질 수 있다. 개시된 시스템은 컨트롤러의 임의의 적절한 구현으로 동작할 수 있고, 구현은 전송 파라미터에 기초하여 달라질 수 있다. 저장 장치와 관련된 정보의 비-제한적인 예시들은 최대 읽기 또는 쓰기 속도, 전력 사용 메트릭(power usage metric), 장치 인터페이스, 지원되는 프로토콜 리스트, 응답 시간, 대기 시간, 처리량, IOPS 속도, 또는 다른 적절한 성능의 능력, 이들의 조합 등을 포함한다.
블록 412에서, 센서는 네트워크 상에서 저장 장치(예를 들어, SSD)와의 연결(예컨대, NVMe-oF 프로토콜에 따른 연결)을 수립할 수 있다. 일부 실시예에서, 센서(예컨대, 센서 (202 또는 204))는 NVMe-oF 연결 또는 지정된 저장 장치와의 연관(association)을 수립할 수 있다. 전술한 바와 같이, NVMe-oF 프로토콜은 이더넷, RDMA, iWARP, TCP/IP, RoCE, RoCEv2, 인피니밴드(Infiniband), 이들의 조합 등의 다양한 전송 프로토콜, 및/또는 5G, Wi-Fi, 블루투스, BLE, 이들의 조합 등의 무선 프로토콜 상에서 수행될 수 있다. 개시된 시스템은 사용되는 네트워크 전송 프로토콜과 애그노스틱(agnostic)할 수 있다. 일부 실시예에서, 연결의 수립은 센서와 저장 장치 사이에서 전송되는 전용 데이터 패킷을 사용하여 수행될 수 있다.
블록 414에서, 센서는 데이터와 함께 커맨드(예컨대, NVMe-oF 쓰기 커맨드)를 네트워크 상에서 저장 장치에 전송할 수 있다. 필요에 따라 초기 구성 및 초기화 후, 센서는 쓰기 커맨드(예컨대, NVMe 쓰기 커맨드)를 저장 장치로 전송할 수 있다. 일부 실시예에서, 쓰기 커맨드는 특정 이름공간 식별자 또는 스트림 식별자를 사용하여 전송될 수 있다. 따라서 캡처된 데이터는 저장 장치의 기본 저장 매체(예컨대, 플래시 매체)의 특정 위치(예컨대, 물리적 블록)에 쓰여질 수 있다. 이러한 방식으로, 필드의 서로 다른 센서들이 이름공간 식별자에 지정된 것과 동일하거나 다른 이름공간에 또는 스트림 식별자에 의해 지정된 것과 동일하거나 다른 스트림에 쓰도록 구성될 수 있다.
일부 측면에서, 센서가 캡처된 데이터를 각각의 지정된 이름공간에 기탁하면, 저장 장치의 컨트롤러는 데이터 기탁 프로세스를 모니터링하고 추적할 수 있다. 예를 들어 저장 장치의 컨트롤러는 저장 장치에 쓰여지는 데이터를 추적할 수 있다. 저장 장치의 컨트롤러는 데이터 처리 및 분석을 위해 구성된 호스트 상의 컴퓨트 CPU로 데이터가 처리를 위해 이용 가능함을 보고하는 비동기 알림을 호스트로 송신할 수 있다. 전술한 바와 같이, 컴퓨트 CPU는 다양한 실시예에서 저장 장치의 컨트롤러에서 처리되지 않은 데이터-기탁된 리포트 커맨드를 호스팅, 발행 및 유지할 수 있다. 이러한 커맨드들은 비동기식으로 데이터-기탁된 알림을 획득하기 위해 컴퓨트 호스트에 의해 사용된 벤더-정의된 NVMe 커맨드를 포함할 수 있다. 이러한 미해결 커맨드들은 지정된 센서가 지정된 이름공간 또는 스트림에 데이터를 기탁할 때 저장 장치의 컨트롤러에 의해 완료되거나 실행될 수 있다. 다른 실시예에서, 저장 장치의 컨트롤러는 특정 양의 데이터가 기탁된 후에 비동기 알림을 전송하도록 구성될 수 있다. 또 다른 실시예에서, 저장 장치의 컨트롤러는 시간, 날짜, 호스트 ID, 이름공간 식별자(NSID), 스트림 식별자, 매체 액세스 제어 (MAC) ID, 다양한 TCP/IP, 스토리지 및 네트워크 파라미터, 이들의 조합 등과 같은 다양한 파라미터 및 정책에 기반하여 비동기 알림을 전송할 수 있다.
블록 416에서, 센서는 저장 장치로부터 커맨드(예를 들어, NVMe-oF 쓰기 커맨드)의 완료와 관련된 완료 엔트리를 기다렸다가 수신할 수 있다. 일부 실시예에서, 완료 엔트리는 센서와 저장 장치 사이의 트랜잭션의 레코드로서 기능할 수 있다.
블록 418에서, 센서는 전송된 데이터(예를 들어, 쓰기 데이터)를 자신의 데이터 버퍼로부터 폐기할 수 있다. 일부 실시예에서, 이것은 저장 장치에서 전송 전에 환경으로부터 데이터 수집의 다음 라운드를 위한 추가 버퍼 용량을 제공하는 역할을 할 수 있다. 데이터 버퍼에서 전송된 데이터를 지운 후, 센서는 추가 데이터를 전송하거나(예컨대, 데이터 버퍼가 가득 찬 후) 미리 결정된 기간 동안 연결을 끊거나 향후 데이터 전송을 위해 연결을 활성 상태로 유지할 수 있다. 따라서, 센서가 현재 또는 미래에 추가 데이터 전송을 수행하기로 결정하는 경우, 센서는 블록 402에 표시된 데이터 전송 프로세스 상태로 되돌아가며, 방법(400)과 관련하여 도시되고 설명된 하나 이상의 동작들을 통해 구동할 수 있다.
도 5는 본 개시의 예시적인 실시예들에 따른 예시적인 저장장치 아키텍처의 다이어그램(500)을 도시한다. 일부 실시예에서, 저장 장치는 SSD(518)를 포함할 수 있다. 예를 들어, SSD(518)는 센서(예를 들어, 센서(502))로부터 수신된 데이터를 저장하기 위해 영구 데이터 저장을 위해 플래시 매체(flash media)를 사용하도록 구성될 수 있다. 센서(502)는 네트워크(514) 상에서 프로토콜(예를 들어, NVMe-oF (504)) 및 네트워크 패브릭 전송(network fabric transport)(506)을 사용하여 SSD(518)와 통신할 수 있다. 네트워크(514)는 센서로부터 SSD(518)로 즉, 큐 쌍들(queue pairs)(516)을 통해 SSD(518)의 패브릭 타겟(520)으로 정보를 전송할 수 있다. SSD(518)는 네트워크(514)를 사용하여 네트워크 패브릭 전송(512) 및 프로토콜(예를 들어, NVMe-oF(510))을 통해 컴퓨트 CPU(508)에 대해 통신할 수 있다. 일부 실시예에서, SSD(518)는 다음 모듈을 포함 할 수 있다: 1) 호스트 인터페이스(521), 2) 플래시 변환 계층(FTL)(528), 및 3) 이름공간(532) 및 비할당 용량(534)을 갖는 플래시 채널(530)( (데이터 및 메타 데이터와 같은 다른 정보를 저장하는 데 사용될 수 있음). 이들 모듈들은 함께 SSD 컨트롤러라고도 지칭될 수 있다. 다양한 실시예에서, 저장 장치 아키텍처는 플래시 매체가 호스트에 액세스 가능하도록 할 수 있다.
호스트 인터페이스(521)는 컴퓨트 CPU(508)에서 부착된 호스트에 영구 스토리지의 논리적 뷰를 제공하도록 구성될 수 있다. 플래시 저장 용량은 논리 블록 또는 섹터 단위로 광고되거나 객체 스토리지로 광고될 수 있다. 호스트는 블록 스토리지용으로 구성된 SSD의 경우 LBA(논리적 블록 주소)를 사용하여 I/O 커맨드를 컴퓨트 CPU(508)을 통해 발행하거나 호스트는 개체를 다룰 수 있는 저장 장치에 대한 키 값(KV) 커맨드들과 같은 개체 저장 프로토콜 커맨드들을 발행할 수 있다. 호스트 인터페이스(521)는 호스트로부터의 네트워크 연결을 다룰 수 있다. 호스트 연결은 SSD(518)의 일련의 커맨드 제출 큐(SQ)(522)로 맵핑될 수 있다. 호스트 인터페이스(521)는 SQ 중재 및 서비스 품질(QoS) 정책을 구현할 수 있으며 실행을 위한 커맨드 선택을 수행하도록 구성될 수 있다. 일부 실시예에서, 호스트 인터페이스(521)는 또한 호스트 메모리(도시되지 않음)로 및/또는 호스트 메모리로부터 데이터 직접 메모리 액세스(DMA) 동작을 수행할 수 있다.
일부 실시예에서, 개시된 시스템은 커맨드(예를 들어, 쓰기 커맨드) 및 데이터(예를 들어, 쓰기 데이터)를 함께 SSD(518)로 전송할 수 있는 센서(502)를 포함할 수 있다. 호스트에서 컴퓨트 CPU(508)는 데이터 DMA 동작을 SSD(518)에 남겨 두면서 커맨드(예를 들어, 읽기 또는 쓰기 커맨드)를 발행할 수 있다. 다른 실시예에서, 실행을 위해 선택된 커맨드는 추가 실행을 위해 FTL(528)로 전달된다.
FTL (528)은 데이터가 플래시 채널(530)의 플래시 매체에 실제로 저장되는 물리적 주소에 데이터를 저장하는 메모리와 관련된 논리적 주소를 커버하는 회로를 포함할 수 있다. 예를 들어, 이러한 플래시 매체는 주의 깊게 관리해야 하는 특정의 특징들(예컨대, 읽기 및/또는 쓰기 및 내구성 특징)을 가진다. 따라서, SSD 컨트롤러(미도시)는 플래시 매체를 관리하도록 구성되어 플래시 매체는 신뢰할 수 있고 고성능이며 비용 효율적인 데이터 저장 능력을 제공하는데 사용될 수 있다. 일부 실시예에서, SSD 컨트롤러는 SSD(518)의 일관된 동작을 보장하기 위해 하나 이상의 내부(예를 들어, SSD 기반) 절차를 수행할 필요가 있을 수 있다. 내부(또는 백그라운드) 동작들의 일부 예시들은 데이터 재활용 동작, 가비지(garbage) 수집 동작, FTL 데이터 구조 업데이트 동작, 상태 및/또는 로그 업데이트 동작, 캐시 오프로드 동작 등을 포함하지만 이에 한정되지 않는다.
일부 실시예에서, FTL(528)은 호스트로부터 플래시 채널(530) 로의 쓰기 커맨드의 경우에 물리적 주소 및/또는 데이터를 제공하도록 구성될 수 있다. 따라서, 플래시 채널(530)은 플래시 매체에 대한 데이터 읽기 또는 쓰기 동작을 수행할 수 있다. 플래시 채널(530)은 플래시 미디어에 액세스하는 데 필요한 특정 버스 프로토콜을 구현할 수 있으며, 플래시 채널(530)은 에러 감지 및 정정 및 데이터 압축을 포함하지만 이에 제한되지 않는 데이터 읽기 또는 쓰기 동작과 관련된 임의의 다른 관련 기능을 추가로 구현할 수 있다.
다양한 측면에서, SSD(518)의 아키텍처는 하나 이상의 호스트를 지원하도록 구성될 수 있는 하나 이상의 컨트롤러(예컨대, NVMe 컨트롤러)를 포함할 수 있다. 다른 실시예에서, 주어진 SSD(518)와 통신하는 하나 이상의 호스트(예컨대, 도 2와 관련하여 도시되고 설명된 호스트(212)와 유사한 호스트)가 있을 수 있다. 또한, SSD(518)와 통신하는 하나 이상의 컴퓨트 CPU(508) 호스트가 있을 수 있다. 따라서, 호스트, 센서(502) 및 컴퓨트 CPU(508)는 SSD(518)에 하나 이상의 전용 NVMe 컨트롤러(524)를 가질 수 있다. 또한, 호스트 및 호스트의 관련 NVMe 컨트롤러(524)는 일련의 전용 연결(미도시)을 포함할 수 있다. 각 연결은 관리자 및/또는 I/O 커맨드 제출 큐(submission queue)(522)에 연결하고 매핑하도록 구성될 수 있다. 다른 실시예에서, NVMe 컨트롤러(524)는 본질적으로 정적 또는 동적일 수 있다. 따라서, NVMe 컨트롤러(524)는 리셋 및 전력 사이클 전반에 걸쳐 자신의 상태 및 구성 설정들을 유지하거나 유지하지 않을 수 있다. SSD 컨트롤러는 센서(502) 및/또는 호스트에 의해 지정된 이름공간 또는 스트림(532)에 기탁되는 데이터를 모니터링하는 로직(예를 들어, 데이터 모니터(526))을 포함할 수 있다. 그런 다음, 이러한 모니터링 정보는 지정된 NVMe 컨트롤러(524)에 이용 가능하게 되어, 그러한 NVMe 컨트롤러(524)는 적절하게 다양한 리포트 커맨드(예를 들어, 미해결 데이터 기탁 리포트 커맨드)을 실행할 수 있다.
다른 실시예에서, 데이터-인에이블된 SSD 컨트롤러에 대해, 컨트롤러는 이름공간(532)을 파일로서 가상화하는 서비스를 제공할 수 있다. 따라서 SSD 컨트롤러는 특정 구현에서 바이트-레벨 쓰기 단위(granularity)를 제공할 수 있으며 추가 능력을 제공할 수 있다. 일부 실시예에서, 이름공간(532)은 센서(502)에 의해 쓰여지는 파일을 참조할 수 있다. 따라서, 센서(502)는 논리 블록 주소(LBA) 오프셋과 같은 특정 정보를 지정하지 않고 커맨드(예를 들어, 쓰기 어펜드(append) 커맨드)를 발행할 수 있다. 따라서 컨트롤러는 쓰기를 적절한 LBA 오프셋으로 변환하고 이름공간(532)에 데이터를 추가하기 위해 해당 이름공간 서비스를 포함할 수 있다. 일부 실시예에서, 데이터 쓰기는 (예를 들어, 센서(502)에서 감소된 기능성을 갖기 위해) 바이트 단위에서 지원될 수 있으며; 따라서 SSD 컨트롤러는 내부 메모리 쓰기 버퍼(미도시)에 데이터 쓰기를 캐시하고 버퍼링된 데이터에 대한 최적/최소 쓰기 필요요건 또는 시간을 충족하는 특정 임계가 충족된 후에 데이터를 쓸 수 있다. 일부 예시에서 SSD 컨트롤러는 데이터를 플래시 매체에 최적으로 위치시키기 위해 어펜드 로직(append logic)을 사용할 수 있다.
다른 실시예에서, SSD 컨트롤러는 처리 장치(예를 들어, FPGA, ASIC, 코어 프로세서 등)를 사용하여 컴퓨트 오프로드 서비스를 제공할 수 있다. 이러한 서비스는 인커밍 데이터를 더 작은 크기로 압축하는 것, 보안 및 보호를 위해 상기 데이터를 암호화하는 것, 분석 또는 기타 데이터베이스로 상기 데이터를 전처리하는 것, 이들의 조합 등을 포함하되 이에 제한되지 않는 다양한 동작들을 데이터에 대해 수행할 수 있다. 다른 실시예에서, 오프로드 서비스 및 능력은 센서 호스트에 투명할 수 있고 발견 서비스 및 컴퓨트 호스트(들)를 통해 속성 설정(property setup)을 포함할 수 있다.
다른 실시예에서, 데이터는 압축된 데이터 쓰기 커맨드로서 SSD (518)에서 수신될 수 있다. 압축된 데이터 쓰기 커맨드는 압축 해제될 수 있으며 전술한 동작들에 따라(적용 가능한 경우) 처리될 수 있다.
일부 실시예에서, 개시된 시스템은 주어진 센서가 데이터 전송 및/또는 처리를 위해 이용 가능하다는 것을 컴퓨트 서버(예를 들어, 호스트 또는 저장 장치(들)와 연관된 서버)에 알리기 위해 사용될 수 있는 커맨드를 포함할 수 있다. 일 실시예에서, 커맨드는 데이터 기탁된 리포트 커맨드(또는 임의의 다른 적절한 이름)으로 지칭될 수 있고 프로토콜(예컨대, NVMe 커맨드 구조 및 포맷)에 따른 커맨드구조 및/또는 포맷을 가질 수 있다. 일부 실시예에서, 커맨드와 연관된 하나 이상의 필드는 비동기적으로 호스트에 대한 데이터 도착 리포팅을 용이하게 하기 위해 필요에 따라 용도가 변경될 수 있다. 즉, 커맨드의 실행이 반드시 미리 결정되는 것은 아니며, 센서 데이터가 SSD에 의해 수신될 때 커맨드가 실행될 수 있다는 것을 의미한다(예컨대, 도 5와 관련하여 도시되고 설명된 SSD 또는 저장 장치 아키텍처(500)).
도 6은 본 개시의 예시적인 실시예들에 따른, 데이터 기탁된 리포트 커맨드(600)의 예시적인 구조의 다이어그램이다. 일부 실시예에서, 커맨드는 서로 다른 필드에 대응하는 예시적인 번호들 602, 604 및 608과 같이 설명될 필드와 연관된 번호들로 구성될 수 있다. 일부 측면에서, 커맨드(600)는 PRP(Physical Region Page) 또는 SGL(Scatter Gather List)이 커맨드와 연관된 임의의 데이터 전송에 사용되는지 여부를 지정하는 PSDT(Physical Region Page (PRP) or Scatter Gather List (SGL) for Data Transfer) 필드(608)를 포함할 수 있다. PRP는 PCIe 상에서 NVMe에 대한 모든 관리 커맨드들에 사용된다. 특히, SGL은 NVMe over Fabrics에 대한 모든 관리 및 I/O 커맨드들에 사용된다. 또한, 커맨드(600)은 CID(capabilities and/or command ID) 필드(612)를 포함 할 수 있으며, CID 필드는 장치들에 의해 지원되는 능력 또는 커맨드와 관련된 식별자에 대한 정보를 포함할 수 있다. 일부 예시에서, 커맨드(600)는 커맨드(600)에서 사용되는 데이터를 지정하는 데이터 포인터(DPTR) 필드(614)를 포함할 수 있다. 일 예에서, 커맨드(600)는 커맨드(600)가 데이터 기탁된 리포트 커맨드라는 것을 나타내기 위해 사용될 수 있는 커맨드(600)의 연산 코드(OPC)(610) 값을 포함할 수 있다.
다른 실시예에서, 센서 ID 필드(624)는 어떤 센서 데이터가 커맨드(600)와 연관되는 지를 나타내도록 구성될 수 있다. 이름공간 ID (620) 필드는 적용 가능한 경우(예를 들어, 도 5와 관련하여 도시되고 설명된 이름공간(532)) 어떤 이름공간 또는 스트림이 리포팅(예를 들어, 호스트에 대한)를 위해 모니터링 될 지를 지정할 수 있다. 일부 실시예에서, 컴퓨트 호스트는 또한 커맨드(600)에서 리포팅 임계치(618) 및 다른 이러한 파라미터들(616)을 설정할 수 있다. 일부 실시예에서, 스트림은 서로 연관된 데이터 쓰기 또는 유사한 수명을 갖는 데이터 쓰기를 나타내는 역할을 할 수 있는 호스트 힌트를 의미할 수 있다. 개별 데이터 쓰기들의 그룹은 집합적 스트림을 형성할 수 있으며 각 스트림에는 고유한 식별자가 제공될 수 있다. 예를 들어, 핫 데이터(예 : 자주 사용되거나 라이브 프로세스의 일부인 데이터)에는 고유한 스트림이 할당될 수 있으며 스트림 ID와 관련된 데이터는 동일한 삭제 블록에 포함될 수 있다. 일부 실시예에서, 스트림은 개시된 시스템과 관련하여 더 나은 내구성, 개선된 성능 및 일관된 지연을 제공하는 것을 포함하지만 이에 제한되지 않는 많은 이점을 제공할 수 있다. 다른 실시예에서, 스트림은 호스트가 각각의 쓰기 동작을 스트림과 연관시킬 수 있도록 하는 역할을 할 수 있다. 일부 실시예에서, 스트림과 연관된 데이터는 실질적으로 동시에 무효화(예를 들어, 업데이트, 트리밍, 매핑 해제, 할당 해제)될 수 있다. 다른 실시예에서, 개시된 시스템은 어플리케이션 데이터 특성(예를 들어, 업데이트 빈도)에 기초하여 블록 할당을 정렬하기 위해 스트림을 사용할 수 있다.
컴퓨트 호스트(예를 들어, 도 5와 관련하여 도시되고 설명된 컴퓨트 CPU(508)를 사용하는 컴퓨트 호스트)는 모니터링하고자 하는 센서에 대해 하나 이상의 데이터 기탁 리포트 커맨드를 발행할 수 있고 이러한 센서에 의해 수집된 데이터를 처리할 수 있다. 일부 실시예에서, 발견 서비스(예를 들어, 도 4와 관련하여 도시되고 설명된 블록 410과 관련하여 설명된 발견 서비스)는 데이터 기탁 리포트 커맨드의 발행과 관련된 이벤트에 가입할 수 있으며, 이러한 이벤트의 발행을 위해 듣고 있는 컴퓨트 호스트에 상기 이벤트를 전달하도록 구성될 수 있다. 다른 실시예에서, 하나 이상의 데이터 기탁 리포트 커맨드들은 지정된 리포팅 조건(들)이 충족될 때까지 SSD에서 미해결 상태로 있을 수 있다. 리포팅 조건(들)이 충족되면 SSD는 해당 미해결의 하나 이상의 데이터 기탁 리포트 커맨드들을 실행하거나 완료하도록 구성될 수 있다. 또한, SSD 컨트롤러는 커맨드를 완료하기 위해 완료 엔트리 (미도시, 도 7 참조)를 전송하도록 구성될 수 있다.
도 7은 본 개시의 예시적인 실시예들에 따른, 데이터 기탁 리포트 커맨드와 관련된 완료 엔트리(700)의 예시적인 구조의 다이어그램이다. 일부 실시예에서, 커맨드는 상이한 필드에 대응하는 예시적인 번호들 702, 704 및 708과 같이, 설명될 필드와 연관된 번호들에 의해 구성될 수 있다. 완료 엔트리(700)는 센서 식별자(714) 뿐만 아니라 커맨드와 연관된 이름공간 또는 스트림 식별자(712)를 포함할 수 있다. 완료 엔트리(700)는 또한 SSD에서 업데이트된 데이터 위치 또는 오프셋(710)에 관한 정보를 나타낼 수 있다. 마지막으로, 완료 엔트리(700)는 센서에 의해 기탁된 데이터의 양을 (예를 들어, 데이터 기탁된 길이 필드(716)를 통해) 표시한다. 완료 엔트리(700)는 데이터 위치 오프셋(710) 필드, 이름공간 ID 필드(706), 연관된 커맨드가 발행된 제출 큐를 나타내는 제출 큐 식별자(718) 필드를 포함할 수 있다. 완료 엔트리(700)는 SQ 식별자 필드에 표시된 제출 큐에 대한 현재 제출 큐 헤드 포인터를 나타내는 SQHD(SQ Head Pointer) (720) 필드를 포함할 수 있다. 완료 엔트리(700)는 장치 상태(STS)(722) 필드를 포함할 수 있다. 완료 엔트리(700)는 커맨드 ID(724) 필드를 포함할 수 있다.
도 8은 본 개시의 예시적인 실시예들에 따라, 환자 건강 파라미터들이 SSD와 같은 저장 장치에 직접 기탁될 수 있는 헬스케어 어플리케이션에 대한 사용 케이스 다이어그램 (800)을 도시한다. 일부 실시예에서, 저장 장치는 초기 원시 데이터 처리 태스크를 수행하고 그 다음 추가 처리 및 액션을 위해 컴퓨트 CPU에 호스트를 통지할 수 있다. 예를 들어, 다양한 센서를 사용하여 환자의 건강 파라미터들(예컨대, 체온, 발열 상태, 질병-진행 상태, 감염 상태 (예컨대, 코로나 바이러스 COVID-19 관련 감염 상태), 땀, 심박수, 대변 조성, 체지방률, 혈압, 수면 패턴, 이들의 조합 등)을 결정하는데 사용될 수 있다. 이러한 파라미터들은 센서에 의해 다양한 저장 장치로 데이터로서 전송될 수 있으며, 저장 장치가 의료 제공자에 의한 추가 검사를 위해 상기 데이터를 처리하고 필터링할 수 있다.
예를 들어, 다이어그램(800)은 네트워크(804), 코어 데이터센터(806), 및 에지 컴퓨팅 네트워크의 일부일 수 있는 에지 데이터센터(808)를 도시한다. 여기에서 사용된 바와 같이, "에지 컴퓨팅"은 예를 들어 응답 시간을 개선하고 대역폭을 절약하기 위해 자원이 요구되는 위치로 계산 및 데이터 저장을 물리적으로 더 가깝게 가져오는 분산 컴퓨팅 시스템을 지칭할 수 있다. 에지 컴퓨팅은 예를 들어 계산 집약적이고 지연 시간이 중요한 어플리케이션을 지원하기 위해, 자원이 제한된 엔드 장치(end device)에 물리적으로 더 가까울 수 있는 네트워크 에지 플랫폼 (예컨대, 에지 데이터센터 및/또는 장치)으로 클라우드 컴퓨팅, 네트워크 제어 및 스토리지의 특정 측면을 이동하는 역할을 한다. 따라서, 에지 컴퓨팅은 에지 및 코어 데이터센터를 모두 통합하는 네트워크 아키텍처에서 대기 시간을 줄이고 대역폭을 증가시킬 수 있다. 일부 측면에서, 저-지연 서비스를 제공하기 위해, 에지 컴퓨팅 패러다임은 에지 컴퓨팅 플랫폼 설계를 최적화할 수 있으며, 그 측면이 여기에 설명된다.
또한, 다이어그램(800)은 코어 데이터센터(806)에 연결된 제1 저장 장치(802) 및 에지 데이터센터(808)에 연결된 제2 저장 장치(810)를 도시한다. 다이어그램(800)은 네트워크(804), 코어 데이터센터(806) 및 에지 데이터센터(808)가 게이트웨이(812)에 결합될 수 있음을 더 보여준다. 다이어그램(800)은 환자와 관련된 센서(814), NVMe-oF 인터페이스(818)를 갖는 건강 서비스 제공자의 로컬 서버(816), 및 제3 저장 장치 (820)를 더 도시한다. 전술한 바와 같이, 센서(814)는 데이터를 수집하고 게이트웨이(812) 상에서 NVMe-oF 프로토콜을 통해 데이터를 로컬 서버(816)로 전송할 수 있다. 데이터는 로컬 서버의 제3 저장 장치(820)에 상주할 수 있다. 상기 데이터의 일부의 사본 또는 센서(814)로부터의 추가 데이터는 게이트웨이(812)를 통해 네트워크(804), 코어 데이터센터(806) 및/또는 에지 데이터센터(808) 중 하나 이상으로 전송될 수 있으며, 제1 저장 장치(802) 및/또는 제2 저장 장치(810) 상에 저장될 수 있다. 네트워크(804), 코어 데이터센터(806) 또는 에지 데이터센터(808) 중 임의의 것에 연결된 장치(예를 들어, 호스트, 도시되지 않음)는 데이터 또는 데이터의 필터링된 형태에 대한 액세스를 요청할 수 있다. 예를 들어 장치는 데이터에 대해 검색, 필터링 또는 정렬 작업을 실행할 수 있다. 일부 실시예에서, 저장 장치는 요청을 실행할 수 있는 처리 엘리먼트(예를 들어, FPGA, ASIC 또는 코어 프로세서)를 포함할 수 있다.
일부 측면에서, 로컬 서버(816) 또는 호스트 디바이스(도시되지 않음)는 인공 지능(AI)을 사용하여 검색, 필터링 또는 정렬 동작들 중 하나 이상을 수행할 수 있고, 전체적으로 또는 개별적으로 센서들에 의해 수집된 데이터에서 패턴을 찾을 수 있다. 예를 들어, AI는 센서 데이터에 기초하여 한명의 환자의 건강 상태에 기초하여 또는 유사한 증상을 보이는 많은 환자의 집계 데이터에 기초하여 하나 이상의 질병을 검출하는데 사용될 수 있다.
일부 실시예에서, 코어 데이터센터(806)는 통신 및 저장 시스템 및/또는 컴포넌트와 같은 컴퓨터 시스템 및 관련 컴포넌트를 수용할 수 있는 전용 엔티티를 포함할 수 있다. 또한, 코어 데이터센터(806)는 워크로드를 실행하고, 관련 데이터 저장하며, 네트워크(804), 에지 데이터센터(808) 및/또는 네트워크 아키텍쳐의 다른 부분들(도시 생략)과 데이터를 통신하는데 사용하기 위한 컴퓨팅, 네트워크 및 저장 자원들을 가지는 다양한 서버들을 포함할 수 있다. 일부 실시예에서, 코어 데이터센터(806)는 다양한 장치(예를 들어, 사용자 장치)에 연결될 수 있다. 예를 들어, 연결은 유선 연결(예 : 이더넷 기반) 또는 무선 연결(예 : Wi-Fi, 5G 및/또는 셀룰러 기반)일 수 있다.
일부 실시예에서, 에지 데이터센터(808)는 통신 및 저장 시스템과 같은 컴퓨터 시스템 및 관련 컴포넌트를 수용할 수 있는 전용 엔티티를 나타낼 수 있으며, 코어 데이터센서와 동일한 또는 유사한 많은 능력들을 가질 수 있다. 그러나, 에지 데이터센터(808)는 일반적으로 코어 데이터센서에 비해 더 작은 물리적 점유공간(footprint)를 가질 수 있다. 또한, 에지 데이터센터(808)는 엔드 사용자에게 물리적으로 더 가깝게 위치할 수 있으며, 이에 따라 특정 워크로드 및 어플리케이션에 대해 감소된 대기시간을 제공할 수 있다. 일부 실시예에서, 에지 데이터센터(808)는 코어 데이터센터 또는 다른 에지 데이터센터(예를 들어, 모바일 에지 데이터센터)에 연결될 수 있다. 더욱이, 에지 데이터센터(808)는 에지 데이터센터(808)에 직접 연결된 다양한 장치들로부터 워크로드 요청(예를 들어, 저장 장치로부터 데이터를 획득하는 요청)을 수신할 수 있다. 다른 실시예에서, 에지 데이터센터(808)는 워크로드의 일부를 다른 에지 데이터센터 또는 코어 데이터센터로 전송할 수 있다.
도 9는 본 개시의 예시적인 실시예들에 따른 산업 공정 자동화 및 제어 어플리케이션을 위한 사용 케이스 다이어그램(900)을 도시한다. 일부 실시예에서, 데이터는 공장 캠퍼스에 흩어져 있는 다수의 센서들로부터 수집되어 SSD에 저장된 다음 분석 및 제어 CPU에 통지될 수 있다. 예를 들어, 다이어그램(900)은 네트워크(904), 코어 데이터센터(906) 및 에지 데이터센터(908)를 도시한다. 또한, 다이어그램(900)은 코어 데이터센터(906)에 연결된 제1 저장 장치(902) 및 에지 데이터센터(908)에 연결된 제2 저장 장치(910)를 도시한다. 다이어그램(900)은 네트워크(904), 코어 데이터센터(906) 및 에지 데이터센터(908)가 게이트웨이(912)에 결합될 수 있음을 더 보여준다. 다이어그램(900)은 현장에 있을 수있는 네트워크화된 센서(924)를 더 도시한다. 예를 들어, 네트워크 센서(924)는 NVMe-oF를 통해 네트워크 센서들(924)과 통신하기 위한 NVMe-oF 인터페이스를 갖는 원격 텔레미터(telemetry) 유닛(RTU)(922)에 연결될 수 있다. RTU는 그 후 SCADA(Supervisory Control and Data Acquisition) 마스터(916) 제어 시스템에서 집계될 수 있으며, 여기에는 네트워크화된 센서들(924)로부터 데이터를 저장하기 위한 추가 저장 장치(920)가 제공될 수 있다.
다이어그램(900)은 NVMe-oF 인터페이스를 갖는 RTU(922)에 연결된, 데이터를 수집하는 현장의 네트워크화된 센서들(924)를 더 도시한다. 네트워크화된 센서들(924)은 NVMe-oF 프로토콜에 따라 데이터를 RTU로, 그리고 궁극적으로 SCADA 마스터(916)의 저장 장치(920)로 전송할 수 있다. SCADA 마스터(916)는 센서 및 RTU로부터의 데이터를 취합할 수 있고 데이터의 적어도 일부를 저장 장치(920)에 저장할 수 있다. 일부 실시예에서, 상기 데이터의 일부의 사본 또는 네트워크화된 센서(924)로부터의 추가 데이터의 어느 하나는 게이트웨이(912)를 통해 네트워크(904), 코어 데이터센터(906) 및/또는 에지 데이터센터(908) 중 하나 이상으로 전송될 수 있으며, 제1 저장 장치(902) 및/또는 제2 저장 장치(910) 상에 저장될 수 있다. 네트워크(804), 코어 데이터센터(806) 또는 에지 데이터센터(808) 중 임의의 것에 연결된 장치(예를 들어, 호스트, 도시되지 않음)는 데이터 또는 데이터의 필터링된 형태에 대한 액세스를 요청할 수 있다. 예를 들어 장치는 데이터에 대해 검색, 필터링 또는 정렬 작업을 실행할 수 있다. 일부 실시예에서, 저장 장치들(902 및/또는 910)은 요청을 실행할 수 있는 처리 엘리먼트(예를 들어, FPGA, ASIC 또는 코어 프로세서)를 포함할 수 있다.
도 10은 본 개시의 예시적인 실시예들에 따른 사물 인터넷(IoT) 어플리케이션을 위한 사용 케이스 다이어그램(1000)을 도시한다. 예를 들어, IoT 장치들은 데이터 처리 및 분석 기능들 중 일부를 SSD로 오프로드하도록 SSD에의 직접 데이터 기탁의 이점이 있다. 다이어그램(1000)은 네트워크(1004), 코어 데이터센터(1006) 및 에지 데이터센터(1008)를 도시한다. 또한, 다이어그램(1000)은 코어 데이터센터(1006)에 연결된 제1 저장 장치(1002) 및 에지 데이터센터(1008)에 연결된 제2 저장 장치(1010)를 도시한다. 다이어그램(1000)은 네트워크(1004), 코어 데이터센터(1006) 및 에지 데이터센터(1008)가 게이트웨이(1012)에 결합될 수 있음을 더 보여준다. 다이어그램(1000)은 센서(1020)를 갖는 IoT 장치, NVMe 인터페이스(1018)를 갖는 IoT 서버(1016), 및 제3 저장 장치(1022)를 더 도시한다.
다이어그램(1000)은 또한 현장(예를 들어, 가정)에서 센서들(1020)을 갖는 IoT 장치가 데이터를 수집할 수 있고 NVMe-oF 인터페이스(1018)를 갖는 IoT 서버(1016)에 연결할 수 있음을 보여준다. 센서(1020)를 갖는 IoT 장치는 NVMe-oF 프로토콜에 따라 데이터를 저장 장치(1022)를 갖는 IoT 서버(1016)로 전송할 수 있다. IoT 서버(1016)는 센서(1020)를 갖는 IoT 장치로부터의 데이터를 집계할 수 있고 데이터의 적어도 일부를 저장 장치(1022)에 저장할 수 있다. 일부 실시예에서, 상기 데이터의 일부의 사본 또는 센서(1020)를 갖는 IoT 장치로부터의 추가 데이터의 어느 하나는 게이트웨이(1012)를 통해 네트워크(1004), 코어 데이터센터(1006) 및/또는 에지 데이터센터(1008) 중 하나 이상으로 전송될 수 있으며, 제1 저장 장치(1002) 및/또는 제2 저장 장치(1010) 상에 저장될 수 있다. 네트워크(1004), 코어 데이터센터(1006) 또는 에지 데이터센터(1008) 중 임의의 것에 연결된 장치(예를 들어, 호스트, 도시되지 않음)는 데이터 또는 데이터의 필터링된 형태에 대한 액세스를 요청할 수 있다. 예를 들어, 장치는 데이터에 대해 검색, 필터링 또는 분류 동작을 실행할 수 있다. 일부 실시예에서, 저장 장치들(1002 및/또는 1010)은 요청을 실행할 수 있는 처리 엘리먼트(예를 들어, FPGA, ASIC 또는 코어 프로세서)를 포함할 수 있다.
도 10과 관련하여 도시되고 설명된 엘리먼트가 카지노 시스템을 더 포함할 수 있는 예시적인 실시예이다. 이러한 시스템에서, 카지노의 센서들(1020)(예를 들어, 카메라, 온도 센서, 모니터링 장비 및 기타 센서)와 관련된 센서 데이터는 중앙 서버(미도시)로 전송되기 전에 로컬 서버들(예컨대, IoT 서버(1016)과 유사하지만 반드시 동일하지 않음)에서 서로 다른 처리 단계들(tiers)(예를 들어, 필터링되고, 집계되고 처리되는 등, 및/또는 저장 장치(들)(1022)에 적어도 부분적으로 저장된)를 통해 유동하고 변경될 수 있다. 또한, 예컨대, 카지노 체인 내에서 제1 카지노(또는 제1 카지도의 서브셋)의 센서(1020)와 관련된 데이터(예컨대, 적어도 부분적으로 장치(들)(1022)에 저장된 데이터)는 네트워크(1004)를 통해 서버(들)(예컨대, IoT 서버(1016) 또는 중앙 집중식 서버)에 연결된 하나 이상의 데이터센터들(예컨대, 코어 데이터센터(1006) 및/또는 하나 이상의 에지 데이터센터(1008))에 링크될 수 있다. 일부 실시예에서, 카지노는 사유 재산에 위치하거나 그렇지 않으면 연관될 수 있고 로컬 서버에 적어도 부분적으로 저장될 수 있는 사적 데이터(예를 들어, 사적 소비자 데이터)를 가질 수 있다. 또한, 네트워크(1004)와 같은 공용(public) 네트워크 상에서 전송될 수 있고 하나 이상의 데이터센터(예컨대, 코어 데이터센터(1006) 및/또는 하나 이상의 에지 데이터센터(1008))를 통해 처리 및/또는 저장될 수 있는 사적 데이터에 기초한 데이터 또는 파생 데이터 (예를 들어, 메타 데이터)의 적어도 일부가 존재할 수 있다. 센서로부터 수집, 처리, 익명화, 필터링, 저장될 수 데이터에 대한 예시적인 비-제한적 사용 케이스들은 블랙리스트에 있는 플레이어들의 얼굴 감지를 수행하는 것, 비정상적인 활동을 감지하는 것; 딜러, 기타 카지노 직원, 도박꾼 등을 모니터링하는 것, 사용자와 관련된 관심 매너리즘(예 : 얼굴 단서, 걷기 패턴 등)을 검출하는 것, 테이블 센서, 슬롯 머신 등과 관련된 사용 활동을 결정하는 것, 사용자(예 : COVID-19에 걸린 사용자)의 질병 상태 모니터링하는 것, 이들의 조합 등을 포함할 수 있으며 이에 제한받지 않는다.
도 11은 본 개시의 예시적인 실시예에 따른 자율 주행 차량 군집 관리 어플리케이션에 대한 사용 케이스 다이어그램(1100)을 도시한다. 예를 들어, 자율 주행 차량은 자동화된 군집 관리를 필요로 한다. 자율 주행 차량은 네트워크 상에서 위치, 차량 건강, 차량 상태 파라미터, 고객 요구사항 및 다른 차량으로부터의 정보와 같은 많은 양의 데이터를 주기적으로 전송할 수 있다. 원시 데이터는 법적, 운영 및 관리 목적을 위해 지속적으로 저장될 필요가 있을 수 있다. 자율 주행 차량은 저장 장치(예컨대, SSD)에 직접 연결하여 데이터를 기탁할 수 있다. 저장 장치는 데이터 포맷 변환, 이벤트 모니터링, 필터링, 분류 등을 수행할 뿐 아니라 분석 및 관리 호스트에 데이터 기탁 알림을 제공하는 것을 포함하되 이에 제한받지 않는 일부 데이터 처리 기능들을 수행할 수 있다.
다이어그램(1100)은 네트워크(1104), 코어 데이터센터(1106) 및 에지 데이터센터(1108)를 도시한다. 또한, 다이어그램(1100)은 코어 데이터센터(1106)에 연결된 제1 저장 장치(1102) 및 에지 데이터센터(1108)에 연결된 제2 저장 장치(1110)를 도시한다. 다이어그램(1100)은 네트워크(1104), 코어 데이터센터(1106) 및 에지 데이터센터(1108)가 게이트웨이(1114)에 결합될 수 있음을 더 보여준다. 다이어그램(1100)은 센서(1122), NVMe 인터페이스(1118)를 갖는 도로변 유닛(RSU)(1116) 및 제3 저장 장치(1120)를 갖는 자율 주행 차량을 추가로 도시한다.
다이어그램(1100)은 현장(예를 들어, 도로)의 네트워크화된 센서들(1122)이 데이터를 수집할 수 있고 NVMe-oF 인터페이스(1118)를 갖는 RSU(1116)의 서버에 연결할 수 있음을 추가로 보여준다. 네트워크 센서(1122)는 NVMe-oF 프로토콜에 따라 데이터를 저장 장치(1120)를 갖는 RSU(1116)로 전송할 수 있다. RSU(1116)는 네트워크화된 센서(1122)로부터의 데이터를 집계 할 수 있고 데이터의 적어도 일부를 저장 장치(1120)에 저장할 수 있다. 일부 실시예에서, 상기 데이터의 일부의 사본 또는 네트워크화된 센서(1122)로부터의 추가 데이터의 어느 하나는 게이트웨이(1114)를 통해 네트워크(1104), 코어 데이터센터(1106) 및/또는 에지 데이터센터(1108) 중 하나 이상으로 전송될 수 있으며, 제1 저장 장치(1102) 및/또는 제2 저장 장치(1110) 상에 저장될 수 있다. 네트워크(1104), 코어 데이터센터(1106) 또는 에지 데이터센터(1108) 중 임의의 것에 연결된 장치(예를 들어, 호스트, 도시되지 않음)는 데이터 또는 데이터의 필터링된 형태에 대한 액세스를 요청할 수 있다. 예를 들어, 장치는 데이터에 대해 검색, 필터링 또는 분류 동작을 실행할 수 있습니다. 일부 실시예에서, 저장 장치들(1102 및/또는 1110)은 요청을 실행할 수 있는 처리 엘리먼트(예를 들어, FPGA, ASIC 또는 코어 프로세서)를 포함할 수 있다.
도 12는 본 개시의 실시예들을 실행하는데 사용될 수 있는 시스템의 예시적인 개략도를 도시한다. 도 12에 도시된 바와 같이, 일부 예시적인 실시예는 하나 이상의 관리 컴퓨팅 엔티티(1200), 하나 이상의 네트워크(1205) 및 하나 이상의 사용자 장치(1210)를 포함할 수 있다. 여기에서 상호 교환적으로 사용되는 이러한 컴포넌트, 엔티티, 장치, 시스템 및 유사한 단어 각각은 예컨대, 동일하거나 상이한 유선 또는 무선 네트워크(예를 들어, 에지 데이터센터 및/또는 코어 데이터센터(이에 한정되지 않음)를 포함하는, 도 2와 관련하여 도시되고 설명된 네트워크(210))를 통해 서로 직접 또는 간접적으로 통신할 수 있다. 추가적으로, 도 12는 개별적인 독립형 엔티티로서 다양한 시스템 엔티티를 도시하지만, 다양한 실시예들은 예시적인 아키텍처로 제한되지 않는다. 또한, 관리 컴퓨팅 엔티티(1200)는 여기에서 설명된 센서(예컨대, 도 2와 관련하여 도시되고 설명된 센서(202 및/또는 206)), 저장 장치(예컨대, 도 2와 관련하여 도시되고 설명된 저장 장치(206)), 또는 사용자 장치 상의 어플리케이션(예컨대, 도 2와 관련하여 도시되고 설명된 어플리케이션(216))와 연관되어 동작하도록 구성될 수 있는 컴퓨팅 모듈 또는 물리적 모듈을 포함할 수 있다. 다양한 실시예에서, 관리 컴퓨팅 엔티티(1200)는 저장 장치로 전송되기 전에, 저장 장치 상에 상주하기 전에, 및/또는 호스트 및/또는 어플리케이션으로 적어도 부분적으로 전송되기 전에, 센서 데이터에 대해 필터링, 검색, 분류 및/또는 관련 동작을 수행하는 것을 포함하지만 이에 제한되지 않는 여기에 설명된 하나 이상의 적합한 동작을 수행하도록 구성될 수 있다. 전술된 바와 같이, 통신은 여기에서 더 설명되는 바와 같이 임의의 적절한 프로토콜(예컨대, 5G 네트워크 프로토콜)을 사용하여 수행될 수 있다.
도 13은 본 개시의 예시적인 실시예들에 따른, 관리 컴퓨팅 엔티티(1300)의 예시적인 개략도를 도시한다. 또한, 관리 컴퓨팅 엔티티(1300)는 컨텐츠 컴포넌트, 처리 컴포넌트 및 송신 컴포넌트(미도시)를 포함할 수 있다. 예를 들어, 콘텐츠 컴포넌트는 여기에 설명된 네트워크 아키텍처 상에서 수신 및/또는 전송될 데이터(예를 들어, 비디오, 오디오, 텍스트, 데이터, 이들의 조합 등)를 나타내는 신호를 결정하는 역할을 할 수 있다. 다른 실시예에서, 여기에서 설명된 센서 아키텍처의 다양한 컴포넌트들 중 임의의 것에 의한 전송 또는 수신을 위한 센서 데이터의 결정은 예를 들어, 호스트에서 장치에 대한 사용자 입력, 네트워크 상의 데이터 전송의 미리 결정된 스케줄, 네트워크 조건들의 변화 등에 기초할 수 있다. 일 실시예에서, 신호는 장치로부터 네트워크상의 하나 이상의 장치로 전송되도록 구성된 데이터 프레임(예컨대, 5G 데이터 프레임)에 캡슐화될 수 있는 데이터를 포함할 수 있다.
다른 실시예에서, 처리 엘리먼트(1305)는 네트워크(예컨대, 네트워크(1205)) 상에서 전송되는 데이터와 관련된 다양한 파라미터를 결정하는 역할을 할 수 있다. 예를 들어, 처리 엘리먼트(1305)는 데이터를 전처리하고, 데이터를 필터링하고, 데이터를 정렬하고, 데이터로부터 노이즈를 제거하고, 다수의 센서로부터 데이터를 집계하고, 이들의 조합 등을 수행하는 역할을 할 수 있다.
일 실시예에서, 송신 컴포넌트(미도시)는 하나의 장치(예를 들어, 센서)로부터 네트워크상의 다른 장치(예를 들어, 저장 장치)로 데이터를 전송하는 역할을 할 수 있다. 예를 들어, 송신 컴포넌트는 네트워크 상에서 신호를 전송하기 위해 송신기(예를 들어, 이하 도 14의 송신기(1404))를 준비하는 역할을 할 수 있다. 예를 들어, 송신 컴포넌트는 하나 이상의 버퍼에 데이터를 큐잉할 수 있고, 송신 장치(예를 들어, 센서) 및 관련 송신기가 기능적이며 네트워크 상에서 신호를 전송하기에 적절한 전력을 가지고 있는지를 확인할 수 있고 및/또는 데이터의 전송과 관련된 더 많은 파라미터(예컨대, 변조 타입, 신호 증폭, 신호 전력 레벨, 잡음 제거, 이들의 조합 등)를 조절할 수 있다.
일반적으로, "컴퓨팅 엔티티", "컴퓨터", "엔티티", "장치", "시스템" 및/또는 여기에서 상호 교환적으로 사용되는 유사한 단어는 예를 들어 하나 이상의 센서, 저장 장치, 서버, 컴퓨터, 컴퓨팅 엔티티, 데스크탑 컴퓨터, 모바일 폰, 태블릿, 패블릿(phablets), 노트북, 랩탑, 분산 시스템, 게임 콘솔(예컨대, Xbox, PlayStation, Wii), 시계, 안경, 아이비콘(iBeacon), 근접 비콘, 전자 열쇠(key fobs), RFID(radio frequency identification) 태그, 이어피스, 스캐너, 텔레비전, 동글, 카메라, 손목밴드, 웨어러블 아이템/장치, 키오스크, 입력 터미널, 서버 또는 서버 네트워크, 블레이드, 게이트웨이, 스위치, 처리 장치, 처리 엔티티, 셋톱 박스, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국 등 및/또는 여기에 설명된 기능들, 동작들 및/또는 프로세스들을 수행하도록 구성된 장치들 또는 엔티티들의 임의의 조합을 나타낼 수 있다. 이러한 기능들, 동작들 및/또는 프로세스들은 예를 들어, 송신, 수신, 동작, 처리, 표시, 저장, 결정, 생성/발생, 모니터링, 평가, 비교 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어를 포함할 수 있다. 일 실시예에서, 이러한 기능들, 동작들 및/또는 프로세스들은 데이터, 콘텐츠, 정보 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어에 대해 수행될 수 있다.
지시된 바와 같이, 일 실시예에서, 관리 컴퓨팅 엔티티(1200)는 송신되고 수신되며, 동작되며, 처리되고, 표시되며, 저장될 수 있는, 데이터, 콘텐츠, 정보 및/또는 또한 여기에서 상호 교환적으로 사용되는 유사한 용어를 통신함으로써 다양한 컴퓨팅 엔티티와 통신하기 위한 하나 이상의 통신 인터페이스(1320)를 포함할 수 있다. 예를 들어, 관리 컴퓨팅 엔티티(1200)는 사용자 장치(1210) 및/또는 다양한 다른 컴퓨팅 엔티티와 통신할 수 있다.
도 13에 도시된 바와 같이, 일 실시예에서, 관리 컴퓨팅 엔티티(1200)는 예컨대, 버스를 통해 관리 컴퓨팅 엔티티(1200) 내에서 다른 엘리먼드들과 통신하는 하나 이상의 처리 엘리먼트(1305)(프로세서, 처리 회로 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어라고도 함)를 포함하거나 그와 통신할 수 있다. 이해되는 바와 같이, 처리 엘리먼트(1305)는 다수의 상이한 방식으로 구현될 수 있다. 예를 들어, 처리 엘리먼트(1305)는 하나 이상의 복잡한 프로그래밍 가능 논리 장치(CPLD), FPGA, 마이크로프로세서, 멀티-코어 프로세서, 코프로세싱(coprocessing) 엔티티, ASIP(application-specific instruction-set processor), 마이크로 컨트롤러 및/또는 컨트롤러로서 구현될 수 있다. 또한, 처리 엘리먼트(1305)는 하나 이상의 다른 처리 장치 또는 회로로서 구현될 수 있다. 용어 "회로"는 완전한 하드웨어 실시예 또는 하드웨어 및 컴퓨터 프로그램 제품의 조합을 나타낼 수 있다. 따라서, 처리 엘리먼트(1305)는 집적 회로, ASIC(application-specific integrated circuits), FPGA(field-programmable gate arrays), PLA(programmable logic arrays), 하드웨어 가속기, 기타 회로 등으로서 구현될 수 있다. 따라서, 이해되는 바와 같이, 처리 엘리먼트(1305)는 특정 용도를 위해 구성되거나 휘발성 또는 비휘발성 매체에 저장된 명령어들을 실행하도록 구성되거나 그렇지 않으면 처리 엘리먼트(1305)에 액세스 가능하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 컴퓨터 프로그램 제품에 의해 구성되든, 또는 이들의 조합에 의해 구성되든, 처리 엘리먼트(1305)는 그에 따라 구성될 때 본 개시의 실시예들에 따른 단계 또는 동작을 수행할 수 있다.
일 실시예에서, 관리 컴퓨팅 엔티티(1200)는 비휘발성 매체(비휘발성 스토리지, 메모리, 메모리 스토리지, 메모리 회로, 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어로도 지칭됨)를 더 포함하거나 그와 통신할 수 있다. 일 실시예에서, 비휘발성 스토리지 또는 메모리는 하드 디스크, ROM, PROM, EPROM, EEPROM, 플래시 메모리, MMC, SD 메모리 카드, 메모리 스틱, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, 밀리피드(Millipede) 메모리, 레이스트랙 메모리 등을 포함하지만 이에 제한되지 않는 하나 이상의 비휘발성 스토리지 또는 메모리 매체(1310)를 포함할 수 있다. 인식되는 바와 같이, 비휘발성 스토리지 또는 메모리 매체는 데이터베이스, 데이터베이스 인스턴스, 데이터베이스 관리 시스템, 데이터, 어플리케이션, 프로그램, 프로그램 컴포넌트, 스크립트, 소스 코드, 개체 코드, 바이트 코드, 컴파일된 코드, 해석된 코드, 기계 코드, 실행 가능한 명령어 등을 저장할 수 있다. 용어 "데이터베이스", "데이터베이스 인스턴스", "데이터베이스 관리 시스템" 및/또는 여기에서 상호 교환 적으로 사용되는 유사한 용어는 계층적 데이터베이스 모델, 네트워크 모델, 관계형 모델, 엔티티-관계 모델, 객체 모델, 문서 모델, 시맨틱 모델, 그래프 모델 등과 같은 하나 이상의 데이터베이스 모델을 사용하여 컴퓨터 판독가능 저장 매체에 저장된 레코드 또는 데이터의 콜렉션을 나타낼 수 있다.
일 실시예에서, 관리 컴퓨팅 엔티티(1200)는 휘발성 매체(휘발성 스토리지, 메모리, 메모리 스토리지, 메모리 회로, 및/또는 여기에서 상호 교환적으로 사용되는 유사한 용어로도 지칭됨)를 더 포함하거나 그와 통신할 수 있다. 일 실시예에서, 휘발성 스토리지 또는 메모리는 또한 RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, 캐시 메모리, 레지스터 메모리 등을 포함하되 이에 제한되지 않는 하나 이상의 휘발성 스토리지 또는 메모리 매체(1315)를 포함할 수 있다. 인식되는 바와 같이, 휘발성 스토리지 또는 메모리 매체는 예컨대, 처리 엘리먼트(1305)에 의해 실행되는, 데이터베이스, 데이터베이스 인스턴스, 데이터베이스 관리 시스템, 데이터, 어플리케이션, 프로그램, 프로그램 컴포넌트, 스크립트, 소스 코드, 개체 코드, 바이트 코드, 컴파일된 코드, 해석된 코드, 기계 코드, 실행 가능한 명령어 등의 적어도 일부를 저장하는데 사용될 수 있다. 따라서, 데이터베이스, 데이터베이스 인스턴스, 데이터베이스 관리 시스템, 데이터, 어플리케이션, 프로그램, 프로그램 컴포넌트, 스크립트, 소스 코드, 객체 코드, 바이트 코드, 컴파일된 코드, 해석된 코드, 기계 코드, 실행 가능한 명령어 등은 처리 엘리먼트(1305) 및 운영 시스템의 도움으로 관리 컴퓨팅 엔티티(1200)의 동작의 특정 측면을 제어하는 데 사용될 수 있다.
지시된 바와 같이, 일 실시예에서, 관리 컴퓨팅 엔티티(1200)는 송신되고 수신되며, 동작되며, 처리되고, 표시되며, 저장될 수 있는, 데이터, 콘텐츠, 정보 및/또는 또한 여기에서 상호 교환적으로 사용되는 유사한 용어를 통신함으로써 다양한 컴퓨팅 엔티티와 통신하기 위한 하나 이상의 통신 인터페이스(1320)를 포함할 수 있다. 이러한 통신은 광섬유 분산 데이터 인터페이스(FDDI), 디지털 가입자 회선(DSL), 이더넷, 비동기 전송 모드(ATM), 프레임 릴레이, DOCSIS(data over cable service interface specification) 또는 임의의 기타 유선 통신 프로토콜와 같은 유선 데이터 전송 프로토콜을 사용하여 실행될 수 있다. 유사하게, 관리 컴퓨팅 엔티티(1200)는 GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), CDMA2000(Code Division Multiple Access 2000), CDMA2000 1X (1xRTT), WCDMA(Wideband Code Division Multiple Access), TD-SCDMA(Time Division-Synchronous Code Division Multiple Access), LTE(Long Term Evolution), E-UTRAN(Evolved Universal Terrestrial Radio Access Network), EVDO(Evolution-Data Optimized), HSPA(고속 패킷 액세스), HSDPA(고속 다운링크 패킷 액세스), IEEE 802.11(Wi-Fi), Wi-Fi Direct, 802.16(WiMAX), 초광대역(UWB), 적외선(IR) 프로토콜, NFC(근거리 통신) 프로토콜, 지그비, 블루투스 프로토콜, USB 프로토콜 및/또는 기타 무선 프로토콜와 같은 다양한 프로토콜중 어느 하나를 사용하여 무선 외부 통신 네트워크를 통해 통신하도록 구성될 수 있다.
도시되지는 않았지만, 관리 컴퓨팅 엔티티(1200)는 키보드 입력, 마우스 입력, 터치 스크린/디스플레이 입력, 모션 입력, 움직임 입력(movement input), 오디오 입력, 포인팅 장치 입력, 조이스틱 입력, 키패드 입력 등과 같은 하나 이상의 입력 엘리먼트을 포함하거나 그와 통신할 수 있다. 관리 컴퓨팅 엔티티(1200)는 또한 오디오 출력, 비디오 출력, 스크린/디스플레이 출력, 모션 출력, 움직임 출력 등과 같은 하나 이상의 출력 엘리먼트(도시되지 않음)를 포함하거나 그와 통신할 수 있다.
이해되는 바와 같이, 하나 이상의 관리 컴퓨팅 엔티티(1200)의 컴포넌트는 분산 시스템에서와 같이 다른 관리 컴퓨팅 엔티티(1200) 컴포넌트로부터 원격으로 위치될 수 있다. 또한, 하나 이상의 컴포넌트들이 결합될 수 있고, 여기서 설명된 기능을 수행하는 추가적인 컴포넌트가 관리 컴퓨팅 엔티티(1200)에 포함될 수 있다. 따라서, 관리 컴퓨팅 엔티티(1200)는 다양한 니즈 및 상황을 수용하도록 구성될 수 있다. 인식되는 바와 같이, 이러한 아키텍처 및 설명은 예시 목적으로 만 제공되며 다양한 실시예로 제한되지 않는다.
"사용자"는 개인, 가족, 회사, 조직, 엔티티, 조직 내 부서, 조직 및/또는 사람의 대표자 등이 될 수 있다. 일례에서, 사용자는 직원, 거주자, 고객 등일 수 있다. 예를 들어, 사용자는 관리 컴퓨팅 엔티티(1200)의 컴포넌트와 기능적으로 유사한 하나 이상의 컴포넌트를 포함하는 사용자 장치(1210)를 조작할 수 있다.
다양한 측면에서, 처리 컴포넌트, 송신 컴포넌트 및/또는 수신 컴포넌트(도시되지 않음)는 하나 이상의 네트워크에서 동작하도록 구성될 수 있고 여기에서 도 12 및 13과 관련하여 도시되고 설명된 바와 같이 관리 컴퓨팅 엔티티(1200)의 기능성의 측면들을 포함할 수 있다. 예를 들어, 처리 컴포넌트, 송신 컴포넌트 및/또는 수신 컴포넌트는 하나 이상의 처리 엘리먼트(1305), 메모리(1310) 및/또는 휘발성 메모리(1315)와 통신하도록 구성될 수 있고, (예컨대, 장치들 사이의 통신을 용이하게 하기 위해) 통신 인터페이스(1320)를 포함할 수 있다.
도 14는 본 개시의 예시적인 실시예들에 따른, 사용자 장치의 예시적인 개략도를 도시한다. 도 14는 본 개시의 실시예들과 관련하여 사용될 수 있으며, 저장 장치(예를 들어, 도 2와 관련하여 도시되고 설명된 저장 장치 (206))에 저장된 데이터를 요청하는 어플리케이션(예를 들어, 도 2와 관련하여 도시되고 설명된 어플리케이션(216))을 구동하는 사용자 장치(1410), 예를 들어 호스트와 연관된 사용자 장치(예를 들어, 도 2와 관련하여 도시되고 설명된 호스트(212))를 나타내는 도식적인 개략도를 제공한다. 일반적으로, "장치", "시스템", "컴퓨팅 엔티티", "엔티티" 및/또는 여기에서 상호 교환적으로 사용되는 유사한 단어는 예를 들어 하나 이상의 컴퓨터, 컴퓨팅 엔티티, 데스크탑, 모바일 폰, 태블릿, 패블릿(phablets), 노트북, 랩탑, 분산 시스템, 게임 콘솔(예컨대, Xbox, PlayStation, Wii), 시계, 안경, 전자 열쇠(key fobs), RFID(radio frequency identification) 태그, 이어피스, 스캐너, 카메라, 손목밴드, 키오스크, 입력 터미널, 서버 또는 서버 네트워크, 블레이드, 게이트웨이, 스위치, 처리 장치, 처리 엔티티, 셋톱 박스, 릴레이, 라우터, 네트워크 액세스 포인트, 기지국 등 및/또는 여기에 설명된 기능들, 동작들 및/또는 프로세스들을 수행하도록 구성된 장치들 또는 엔티티들의 임의의 조합을 나타낼 수 있다. 사용자 장치(1210)는 다양한 당사자에 의해 동작될 수 있다. 도 14에 도시된 바와 같이, 사용자 장치(1210)는 안테나(1412), 송신기(1404)(예컨대, 라디오), 수신기(1406)(예컨대, 라디오) 및 처리 장치(1408)(예컨대, CPLD, 마이크로 프로세서, 멀티-코어 프로세서, 코프로세싱(coprocessing) 엔티티, ASIP, 마이크로 컨트롤러 및/또는 컨트롤러)를 포함할 수 있으며, 처리 장치는 송신기(1404) 및 수신기(1406)으로 신호들을 제공하고 신호들을 수신한다.
송신기(1404) 및 수신기(1406)으로 각각 제공되고 이들로부터 수신된 신호는 장치들간에 데이터를 전송하는 데 사용될 수 있으며 적용 가능한 무선 시스템의 무선 인터페이스 표준에 따른 시그널링 정보를 포함할 수 있다. 이와 관련하여, 사용자 장치(1210)는 하나 이상의 무선 인터페이스 표준, 통신 프로토콜, 변조 타입 및 액세스 타입으로 동작할 수 있다. 예를 들어, 사용자 장치(1210)는 관리 컴퓨팅 엔티티(1200)와 관련하여 전술한 바와 같은 다수의 무선 통신 표준 및 프로토콜 중 어느 하나에 따라 동작할 수 있다. 일부 예시적인 실시예들에 따르면, 사용자 장치(1210)는 다수의 무선 통신 표준 및 개시된 IoT DOCSIS 프로토콜, UMTS, CDMA2000, 1xRTT, WCDMA, TD-SCDMA, LTE, E-UTRAN, EVDO, HSPA, HSDPA, Wi-Fi, Wi-Fi Direct, WiMAX, UWB, IR, NFC, 블루투스, USB 등과 같은 다수의 프로토콜에 따라 동작할 수 있다. 유사하게, 사용자 장치(1210)는 관리 컴퓨팅 엔티티(1200)와 관련하여 전술한 바와 같은 다수의 유선 통신 표준 및 프로토콜에 따라 네트워크 인터페이스(1420)을 통해 동작할 수 있다.
이러한 통신 표준 및 프로토콜을 통해 사용자 장치(1210)는 USSD(Unstructured Supplementary Service Data), SMS(Short Message Service), MMS(Multimedia Messaging Service), DTMF(Dual-Tone Multi-Frequency Signaling) 및/또는 가입자 식별 모듈 다이얼러(SIM 다이얼러)와 같은 개념을 사용하여 다양한 다른 엔티티와 통신할 수 있다. 사용자 장치(1210)는 또한 예를 들어 펌웨어, 소프트웨어(예를 들어, 실행 가능한 명령어, 어플리케이션 및 프로그램 컴포넌트를 포함) 및 운영 체제에 대한 변경, 추가 기능(add-ons) 및 업데이트를 다운로드할 수 있다.
일 실시예에 따르면, 사용자 장치(1210)는 위치 결정 측면, 장치, 컴포넌트, 기능 및/또는 본 명세서에서 상호 교환적으로 사용되는 유사한 단어를 포함할 수 있다. 위치 결정 측면은 사용자 장치(1210)에 의해 필요한 데이터를 최소 지연으로 효율적으로 전송하기 위해 하나 이상의 센서 또는 사용자 장치 자체의 위치를 결정하는데 사용될 수 있다. 예를 들어, 위치 결정 측면은 사용자 장치(1210)에서 구동 중인 어플리케이션과 관련된 날씨 데이터 요청이 제2 위치와 반대에 있는 제1 위치에 있는 장치(예를 들어, 센서, 저장 장치 또는 둘 다)에 의해 가장 잘 서비스될 수 있다고 결정할 수 있다. 일 실시예에서, 위치 결정 컴포넌트는 관측중인 위성의 개수 및 이러한 위성의 상대적 위치를 식별함으로써 때때로 천체 데이터(ephemeris data)로 알려진 데이터를 획득할 수 있다. 위성은 저궤도(LEO) 위성 시스템, 국방부(Department of Defense) 위성 시스템, 유럽 연합 갈릴레오 포지셔닝 시스템, 중국 나침반 내비게이션 시스템(Chinese Compass navigation systems), 인도 지역 내비게이션 위성 시스템(Indian Regional Navigational satellite systems) 등을 포함하는 다양한 위성들일 수 있다. 대안적으로, 위치 정보는 셀룰러 타워, Wi-Fi 액세스 포인트 등을 포함하는 다양한 다른 시스템과 관련하여 사용자 장치(1210) (또는 센서의) 위치를 삼각 측량함으로써 결정될 수 있다. 유사하게, 사용자 장치(1210)는 예를 들어 위도, 경도, 고도, 지오코드, 코스, 방향, 지향(heading), 속도, 시간, 날짜 및/또는 다양한 기타 정보/데이터를 획득하도록 구성된 위치 결정 컴포넌트와 같은 실내 포지셔닝 측면을 포함할 수 있다. 실내 시스템들중 일부는 RFID 태그, 실내 비콘 또는 송신기, Wi-Fi 액세스 포인트, 셀룰러 타워, 인근 컴퓨팅 장치(예를 들어, 스마트폰, 랩탑) 등을 포함하는 다양한 위치 또는 위치 기술을 사용할 수 있다. 예를 들어, 이러한 기술들은 아이비콘(iBeacon), 짐벌(Gimbal) 근접 비콘, BLE(Bluetooth Low Energy) 송신기, NFC 송신기 등을 포함할 수 있다. 이러한 실내 포지셔닝 측면은 다양한 설정들에서 사용되어 인치 또는 센티미터 이내로 누군가 또는 무언가의 위치를 결정할 수 있다.
사용자 장치(1210)는 또한 사용자 인터페이스(처리 엘리먼트(1408)에 연결된 디스플레이(1416)를 포함할 수 있음) 및/또는 사용자 입력 인터페이스(처리 엘리먼트(1408)에 연결됨)를 포함할 수 있다. 예를 들어, 사용자 인터페이스는 여기에서 설명된 바와 같이, 관리 컴퓨팅 엔티티(1200)와 상호 작용하여 관리 컴퓨팅 엔티티(1200)로부터의 정보를 표시하게 하기 위해, 사용자 장치(1210) 상에서 실행하는 및/또는 사용자 장치(1210)를 통해 액세스 가능한 사용자 어플리케이션, 브라우저, 사용자 인터페이스 및/또는 여기에서 상호 교환가능하게 사용되는 유사한 단어일 수 있다. 사용자 입력 인터페이스는 사용자 장치(1210)가 데이터를 수신할 수있게 하는, 키패드(1418) (하드 또는 소프트), 터치 디스플레이, 보이스/음성 또는 모션 인터페이스, 또는 다른 입력 장치와 같은 다수의 장치들 또는 인터페이스들 중 어느 하나를 포함할 수 있다. 키패드(1418)를 포함하는 실시예들에서, 키패드(1418)는 사용자 장치(1210)를 동작시키는데 사용되는 종래의 숫자(0-9) 및 관련 키들(#, *)와 기타 키들을 포함(또는 이들을 표시)할 수 있으며, 알파벳 키들의 풀 셋(full set) 또는 알파벳 키들의 풀셋을 제공하도록 활성화될 수 있는 키 셋(set of keys)를 포함할 수 있다. 입력의 제공에 추가하여, 사용자 입력 인터페이스는 예컨대, 화면 보호기 및/또는 슬립 모드(sleep mode)와 같은 특정 기능을 활성화하거나 비활성화하는데 사용될 수 있다.
사용자 장치(1210)는 또한 내장되거나 제거될 수 있는 휘발성 스토리지 또는 메모리(1422) 및/또는 비휘발성 스토리지 또는 메모리(1424)를 포함할 수 있다. 예를 들어, 비 휘발성 메모리는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, MMC, SD 메모리 카드, 메모리 스틱, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM, Millipede 메모리, 경마장 메모리 등. 휘발성 메모리는 RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, 캐시 메모리, 레지스터 메모리 등을 포함할 수 있다. 휘발성 및 비휘발성 스토리지 또는 메모리는 사용자 장치(1210)의 기능들을 구현하기 위해 데이터베이스, 데이터베이스 인스턴스, 데이터베이스 관리 시스템, 데이터, 어플리케이션, 프로그램, 프로그램 컴포넌트, 스크립트, 소스 코드, 개체 코드, 바이트 코드, 컴파일된 코드, 해석된 코드, 기계 코드, 실행 가능한 명령어 등을 저장할 수 있다. 지시된 바와 같이, 이것은 엔티티에 상주하거나 관리 컴퓨팅 엔티티(1200) 및/또는 다양한 다른 컴퓨팅 엔티티와 통신하는 브라우저 또는 다른 사용자 인터페이스를 통해 액세스 가능한 사용자 어플리케이션을 포함할 수 있다.
다른 실시예에서, 사용자 장치(1210)는 상기 상세히 설명된 바와 같이 관리 컴퓨팅 엔티티(1200)와 동일하거나 유사한 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 인식되는 바와 같이, 이러한 아키텍처 및 설명은 예시 목적으로 만 제공되며 다양한 실시예로 제한되지 않는다.
도 15는 본 개시의 예시적인 실시예들에 따른, 센서-기반 저장 아키텍처의 맥락에서 여기에서 다양하게 설명된 센서 및 저장 장치를 포함하는 시스템을 동작시키는 방법의 다이어그램(1500)을 도시한다. 블록 1502에서, 개시된 시스템은 발견 서비스를 사용하고 매체 상에서의 네트워크를 통해 저장 장치와 관련된 하나 이상의 파라미터를 결정할 수 있다. 이러한 파라미터들의 비-제한적인 예시들은 센서 및 저장 장치의 능력 및 특징(예를 들어, 대역폭, 총 저장, 지원되는 네트워크 인터페이스, 지원되는 무선 또는 유선 프로토콜, 이들의 조합 등)과 관련된 정보를 포함할 수 있다. 일 예시에서, 센서는 데이터 전송 능력을 제공할 수 있고 저장 장치는 데이터 수신 기능을 제공할 수 있으며 데이터 전송과 관련된 하나 이상의 파라미터는 데이터 전송이 효율적으로 및/또는 최적을 방식으로 수행되도록 장치에 의해 결정될 수 있다.
블록 1504에서, 개시된 시스템은 파라미터에 기초하여 매체 상에서 네트워크를 통해 적어도 하나의 센서로부터 저장 장치로 데이터를 전송할 수 있다. 일부 실시예에서, 데이터 전송은 무선 매체 상에서(예를 들어, 블루투스, Wi-Fi, 셀룰러, 5G, 이들의 조합 등을 통해) 수행될 수 있다. 다른 실시예에서, 센서는 미리 결정된 규칙에 기초하여 데이터를 전송할 수 있다. 예를 들어, 규칙은 미리 정해진 양의 데이터가 그의 로컬 버퍼를 채울 때, 네트워크 조건이 충족될 때, 특정 타입의 데이터가 검출될 때, 제2 장치가 대응하는 명령어를 제공할 때, 사용자가 대응하는 명령어를 제공할 때, 기지국에 대한 무선 연결이 하루의 특정 시각에서 미리 결정된 임계보다 더 강할 때, 그 조합 등에서 센서가 데이터 전송을 시작하도록 지시할 수 있다. 다른 실시예에서, 센서는 NVMe-oF와 같은 저장 프로토콜 및 이더넷 프로토콜, RDMA 프로토콜, iWARP 프로토콜, TCP/IP 프로토콜, RoCE 프로토콜, 인피니밴드 프로토콜, 5G 무선 프로토콜, Wi-Fi 프로토콜, 블루투스 프로토콜 또는 BLE 프로토콜과 같은 전송 프로토콜을 이용하여 데이터를 전송하도록 구성될 수 있다. 일부 실시예에서, 저장 장치는 하나 이상의 이름공간 또는 스트림을 포함할 수 있고, 센서는 데이터의 적어도 일부를 저장하기 위해 저장 장치상의 이름공간 또는 스트림을 지정할 수 있다.
블록 1506에서, 개시된 시스템은 데이터를 처리하고 데이터의 적어도 일부를 저장 장치에 저장할 수 있다. 예를 들어, 데이터의 처리는 필터링 동작, 분류 동작, 또는 검색 동작, 이들의 조합 등을 포함할 수 있지만 이에 제한되지 않는다. 또한, 저장 장치는 데이터를 처리하기 위해 FPGA, ASIC 또는 프로세서 중 적어도 하나를 포함할 수 있다. 일부 실시예에서, 데이터는 다수의 센서들과 연관된 데이터를 포함하고, 데이터의 처리는 상이한 센서들로부터 데이터를 집계하는 것을 포함할 수 있다. 일부 실시예에서, 개시된 시스템은 데이터가 센서에 의해 저장 장치에 기탁되었으며 호스트에 의해 처리될 준비가 되었음을 나타 내기 위해 저장 장치가 데이터 기탁된 리포트 커맨드를 호스트에 전송하게 할 수 있다.
블록 1508에서, 개시된 시스템은 네트워크를 통해 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송할 수 있다. 일부 실시예에서, 호스트는 다수의 호스트를 포함할 수 있고, 저장 장치의 컨트롤러는 데이터의 적어도 제2 부분을 다수의 호스트로 전송할 수 있다. 일부 실시예에서, 개시된 시스템은 데이터 전송이 완료되었음을 호스트(들)에 통지하기 위해 완료 엔트리를 전송할 수 있다.
다양한 실시예에서, 저장 장치는 1) 이름공간 또는 2) 스트림 중 적어도 하나를 포함할 수 있으며, 방법은 센서에 의해 데이터의 적어도 일부를 저장하기 위한 이름공간 또는 스트림을 지정하는 단계를 더 포함한다. 또한, 개시된 시스템은 추가로 데이터의 일부가 저장 장치에 저장되어 있음을 결정하고, 데이터의 일부와 관련된 크기가 임계치를 초과함을 결정하고, 임계치를 초과하는 크기의 결정에 기초하여 호스트로 비동기 알림을 전송할 수 있다. 다른 실시예에서, 비동기 알림은 데이터 오프셋 정보, 데이터 위치 정보, 또는 데이터 길이 정보 중 적어도 하나를 포함할 수 있다.
전술한 바와 같이, AI는 수집된 센서 데이터와 관련된 다양한 태스크(예를 들어, 필터링, 검색, 분류, 집계, 데이터 내의 패턴 검출, 이들의 조합 등)를 수행하는 데 사용될 수 있다. AI는 예컨대, 향상된 데이터 및 커맨드 라우팅을 위해 및/또는 저장 장치 상에서의 최적의 데이터 배치를 위해 시간에 따라 네트워크의 서로 다른 부분들 상에서 데이터 흐름(예 : 이력 데이터)을 모니터링함으로써 네트워크 아키텍처의 부분들 사이에서 데이터 및 커맨드들의 라우팅에 사용될 수 있다. 따라서, 여기에 설명된 장치 및/또는 관련 컴포넌트의 실시예는 AI를 채용하여 여기에서 설명된 하나 이상의 특징을 자동화하는 것을 용이하게 할 수 있다. 컴포넌트들은 본 명세서에 개시된 다양한 실시예/예시들을 수행하기 위해 다양한 AI-기반 방식들을 사용할 수 있다. 여기에 설명된 다수의 결정들(예를 들어, 결정, 확인, 추론, 계산, 예상, 예측, 추정, 도출, 검출, 산출)을 제공하거나 상기 결정들에 도움을 주기 위해, 여기에 설명된 컴포넌트들은 액세스 권한이 부여된 데이터의 전체 또는 서브셋(subset)을 검사할 수 있으며, 이벤트 및/또는 데이터를 통해 캡처된 일련의 관찰들로부터 시스템, 환경 등의 상태에 대한 추론을 제공하거나 결정할 수 있다. 결정들이 특정 상황이나 행동을 식별하기 위해 사용될 수 있고, 예를 들어, 상태들에 대한 확률 분포를 생성할 수 있다. 결정들은 확률적일 수 있는데, 즉, 데이터와 이벤트를 고려하여 관심 상태에 대한 확률 분포를 계산하는 것이다. 결정들은 또한 일련의 이벤트 및/또는 데이터로부터 상위-레벨 이벤트를 구성하는 데 채용되는 기술을 참조할 수 있다.
이벤트가 시간적으로 근접하게 상호 연관되어 있는지 여부, 및 이벤트 및 데이터가 하나 또는 여러 이벤트 및 데이터 자원에서 오는지 여부 등의 이러한 결정들은 일련의 관찰된 이벤트들 및/또는 저장된 이벤트 데이터로부터 새로운 이벤트 또는 행동을 구성할 수 있다. 여기에 개시된 컴포넌트들은 청구된 발명과 관련하여 자동 및/또는 결정된 행동을 수행하는 것과 관련하여 다양한 분류 (명시적으로 훈련될 뿐만 아니라(예컨대, 훈련 데이터를 통해) 및 암시적으로 훈련됨(예컨대, 거동 관찰, 선호도, 이력 정보, 외부 정보(extrinsic information) 등을 통해) 방식 및/또는 시스템(예컨대, 지원 벡터 머신, 신경망, 전문가 시스템, 베이지안 빌리프 네트워크, 퍼지 논리, 데이터 융합 엔진 등)을 채용할 수 있다. 따라서, 분류 방식 및/또는 시스템은 다수의 기능, 행동 및/또는 결정을 자동으로 학습하고 수행하는데 사용될 수 있다. 일부 측면에서, 신경망은 LSTM( long short term memory) 신경망, 회귀 신경망, 시간 지연 신경망, 또는 피드 포워드 신경망 중 적어도 하나를 포함하며, 이에 제한되지 않는다.
분류기는 입력 속성 벡터 z = (z1, z2, z3, z4,…zn)를 f(z) = confidence(class)와 같이 입력이 클래스에 속한다는 신뢰에 맵핑할 수 있다. 이러한 분류는 확률적 및/또는 통계-기반 분석을 사용하여 자동으로 수행될 행동을 결정할 수 있다. SVM(Support Vector Machine)은 채용될 수 있는 분류기의 예시일 수 있다. SVM은 가능한 입력들의 공간에서 하이퍼-표면을 찾음으로써 동작하며, 여기서 하이퍼-표면은 비트리거링 이벤트들로부터 트리거링 기준을 분리하려고 시도한다. 직관적으로, 이것은 훈련 데이터와 비슷하지만 동일하지는 않은 테스트 데이터에 대해 분류를 올바르게 하도록 한다. 예를 들어, 나이브 베이즈, 베이지안 네트워크, 의사 결정 트리, 신경망, 퍼지 논리 모델, 및/또는 다양한 독립 패턴을 제공하는 확률적 분류 모델을 포함하는 다른 방향성 및 비방향성 모델 분류 방식이 채용될 수 있다. 본 명세서에서 사용되는 "분류(Classification)"는 또한 우선순위 모델을 개발하는데 사용되는 통계적 회귀를 포함한다.
특정 예에서, 개시된 시스템은 특정 실시예의 도시의 목적및 용이를 위해 개시된 센서, 저장 시스템 및 호스트 아키텍처와 관련하여 구현될 수 있다. 개시된 시스템은 본 명세서에서 명시적으로 설명된 것 이외의 네트워크 아키텍처와 관련하여 사용될 수 있음을 이해해야 한다. 일부 측면에서, 개시된 센서, 저장 시스템 및 호스트 아키텍처의 하나 이상의 컴포넌트는 예를 들어 5 세대(5G) 네트워크에서, 셀룰러 네트워크의 다음 진화와 관련하여 사용될 수 있다. 따라서 센서, 저장 시스템 및 호스트 아키텍처는 5G 셀룰러 네트워크와 관련하여 구현되어 저-지연 네트워크 아키텍처를 가능하게 한다. 이러한 저-지연 서비스를 제공하기 위해, 개시된 시스템은 본 명세서에 추가로 설명되는 바와 같이 센서, 저장 시스템 및 호스트 아키텍처의 컴포넌트들 사이에서 전송되는 데이터의 필터링 및/또는 압축을 통해 응답 시간을 최소화할 수 있다. 더욱이, 개시된 시스템은 에지-서버 아키텍처 디자인 및 에지-컴퓨팅 서비스 최적화를 통해 지연 필요요건을 충족시키기 위해 에지 컴퓨팅 플랫폼의 미리결정된 구성과 함께 사용될 수 있다.
특정 실시예들은 하드웨어, 펌웨어 및 소프트웨어의 하나 또는 조합으로 구현될 수 있다. 다른 실시예들은 또한 본 명세서에 설명된 동작을 수행하기 위해 적어도 하나의 프로세서에 의해 판독 및 실행될 수 있는 컴퓨터 판독가능 저장 장치에 저장된 명령어로서 구현될 수 있다. 컴퓨터 판독가능 저장 장치는 기계(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 비-일시적 메모리 메커니즘을 포함할 수 있다. 예를 들어, 컴퓨터 판독가능 저장 장치는 ROM(read-only memory), RAM(random-access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치 및 기타 저장 장치 및 매체를 포함할 수 있다.
본 명세서에서 "예시"라는 단어는 "예시, 실례 또는 도시로서 기능하는 것"을 의미하기 위해 사용된다. 본 명세서에서 "예시"로서 설명된 임의의 실시예는 반드시 다른 실시예보다 바람직하거나 유리한 것으로 해석될 필요는 없다. 본 명세서에서 사용되는 용어 "컴퓨팅 장치", "사용자 장치", "통신 스테이션", "스테이션", "핸드 헬드 장치", "모바일 장치", "무선 장치" 및 "사용자 장비"(UE)는 셀룰러 폰, 스마트 폰, 태블릿, 넷북, 무선 단말기, 랩탑 컴퓨터, 펨토셀, HDR(High Data Rate) 가입자 스테이션, 액세스 포인트, 프린터, POS 장치, 액세스 터미널 또는 기타 PCS(personal communication system) 장치와 같은 무선 통신 장치를 나타낸다. 장치는 이동식 또는 고정식일 수 있다.
이 문서에서 사용되는 "통신"이라는 용어는 전송, 수신 또는 전송과 수신 모두를 포함한다. 이것은 하나의 장치에 의해 전송되고 다른 장치에 의해 수신되는 데이터의 구성을 설명할 때 청구범위에서 특히 유용할 수 있지만 청구범위를 침해하기 위해 이들 장치들중 하나의 기능만이 요구된다. 유사하게, 두 장치들(교환 중에 송신 및 수신하는 장치들 모두)간의 양방향 데이터 교환은 해당 장치들 중 하나의 기능만이 청구되는 경우 '통신'으로 설명될 수 있다. 무선 통신 신호에 대해 본 명세서에서 사용되는 "통신"이라는 용어는 무선 통신 신호를 송신하고 및/또는 무선 통신 신호를 수신하는 것을 포함한다. 예를 들어, 무선 통신 신호를 통신할 수 있는 무선 통신 장치는 적어도 하나의 다른 무선 통신 유닛에 무선 통신 신호를 송신하는 무선 송신기 및/또는 무선 통신 신호를 적어도 하나의 다른 무선 통신 유닛으로부터 수신하는 무선 통신 수신기를 포함할 수 있다.
일부 실시예는 예컨대, 퍼스널 컴퓨터(PC), 데스크탑 컴퓨터, 모바일 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 서버 컴퓨터, 핸드헬드 컴퓨터, 핸드헬드 장치, PDA(Personal Digital Assistant) 장치, 핸드헬드 PDA 장치, 온보드 장치, 오프보드 장치, 하이브리드 장치, 차량 장치, 비차량 장치, 모바일 또는 휴대용 장치, 소비자 장치, 비모바일 또는 비휴대용 장치, 무선 통신 스테이션, 무선 통신 장치, 무선 액세스 포인트(AP), 유선 또는 무선 라우터, 유선 또는 무선 모뎀, 비디오 장치, 오디오 장치, 오디오-비디오(A/V) 장치, 유선 또는 무선 네트워크, 무선 영역 네트워크, WVAN(Wireless Video Area Network), LAN(Local Area Network), WLAN(Wireless LAN), PAN(Personal Area Network), WPAN(Wireless PAN) 등의 다양한 장치들 및 시스템들과 연계하여 사용될 수 있다.
일부 실시예들은 단방향 및/또는 양방향 무선 통신 시스템, 셀룰러 무선 전화 통신 시스템, 이동 전화, 셀룰러 전화, 무선 전화, 개인 통신 시스템(PCS) 장치, 무선 통신 장치를 통합한 PDA 장치, 모바일 또는 휴대용 GPS(Global Positioning System) 장치, GPS 수신기 또는 트랜시버 또는 칩이 통합된 장치, RFID 엘리먼트 또는 칩이 통합된 장치, MIMO(Multiple Input Multiple Output) 트랜시버 또는 장치, SIMO(Single Input Multiple Output) 트랜시버 또는 장치, MISO(Multiple Input Single Output) 트랜시버 또는 장치, 하나 이상의 내부 안테나 및/또는 외부 안테나를 갖는 장치, DVB(Digital Video Broadcast) 장치 또는 시스템, 다중-표준 무선 장치 또는 시스템, 유선 또는 무선 핸드헬드 장치, 예를 들어 스마트 폰, WAP(Wireless Application Protocol) 장치 등과 연계하여 사용될 수 있다.
일부 실시예들은 하나 이상의 타입의 무선 통신 신호들 및/또는 시스템들과 연계하여 사용될 수 있으며, 상기 무선 통신 시스템들은 예컨대, 무선 주파수(RF), 적외선(IR), Frequency-Division Multiplexing (FDM), OFDM(Orthogonal FDM), TDM(Time-Division Multiplexing), TDMA(Time-Division Multiple Access), E-TDMA (Extended TDMA), GPRS(General Packet Radio Service), extended GPRS, CDMA(Code-Division Multiple Access), 광대역 CDMA(WCDMA), CDMA 2000, 단일 반송파 CDMA, 다중 반송파 CDMA, MDM(Multi-Carrier Modulation), DMT(Discrete Multi-Tone), BluetoothTM, GPS(Global Positioning System), Wi-Fi, Wi-Max, ZigBeeTM, UWB(Ultra-Wideband), GSM(Global System for Mobile Communication), 2G, 2.5G, 3G, 3.5G, 4G, 5세대(5G) 모바일 네트워크, 3GPP, LTE(Long Term Evolution), LTE advanced, EDGE(Enhanced Data rates for GSM Evolution) 등과 같은 하나 이상의 무선 통신 프로토콜을 따른다. 다른 실시예들은 다양한 다른 장치, 시스템 및/또는 네트워크에서 사용될 수 있다
예시적인 처리 시스템은 상기에서 설명되었지만, 여기에서 설명된 발명의 실시예들 및 기능적 동작들은 다른 타입의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
여기에서 설명된 발명의 실시예들 및 동작들은 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 여기에서 설명된 발명의 실시예들은 하나 이상의 컴퓨터 프로그램으로서 즉, 정보/데이터 처리 장치에 의해 실행되거나 그 동작을 제어하기 위해 컴퓨터 저장 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램 명령어들의 하나 이상의 컴포넌트로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어는 인공적으로 생성된 전파 신호, 예를 들어 기계-생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있으며, 상기 신호는 정보/데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보/데이터를 인코딩하도록 생성된다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파된 신호가 아닌 반면, 컴퓨터 저장 매체는 인공적으로 생성된 전파 신호에서 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예컨대, 다수의 CD, 디스크 또는 기타 저장 장치)일 수 있거나 이에 포함될 수 있다.
여기에 설명된 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 정보/데이터에 대해 정보/데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.
용어 "데이터 처리 장치"는 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 기계를 포함하며, 예를 들어, 하나의 또는 다수의 프로그램 가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 또는 이들의 조합을 포함한다. 이 장치는 특수 목적 논리 회로, 예컨대, FPGA(field-programmable gate array) 또는 ASIC(application specific integrated circuit)를 포함할 수 있다. 이 장치는 하드웨어 외에도 해당 컴퓨터 프로그램의 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 서로다른 컴퓨팅 모델 인프라들을 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 또는 코드로 알려짐)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며 독립 실행형 프로그램로서 또는 컴포넌트로서, 컴퓨팅 환경에서 사용하기에 적합한 컴포넌트, 서브루틴, 개체 또는 기타 단위를 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램 또는 정보/데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램에 대해 전용의 단일 파일, 또는 다수의 조직화된 파일들(예컨대, 하나 이상의 컴포넌트, 서브 프로그램 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되거나 여러 사이트에 분산되고 컴퓨터 네트워크에 의해 상호 연결된 다수의 컴퓨터들 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 정보/데이터에 대해 동작하고 출력을 생성함으로써 행동을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서들에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 이들로부터 명령어 및 정보/데이터를 수신한다. 컴퓨터의 필수 엘리먼트는 명령어에 따라 행동을 수행하기 위한 프로세서와 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기(magneto-optical) 디스크 또는 광 디스크로부터 정보/데이터를 수신하거나 정보/데이터를 전송하거나, 둘다 가능하도록 작동 가능하게 결합될 수 있다. 그러나 컴퓨터에는 이러한 장치를 가질 필요가 없다. 컴퓨터 프로그램 명령어 및 정보/데이터를 저장하기에 적합한 장치는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광자기 디스크; 및 CD ROM 및 DVD-ROM 디스크와 같은 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 여기에 설명된 발명의 실시예는 정보/데이터를 사용자에게 표시하기 위해 CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터와 같은 디스플레이 장치 및 사용자가 입력을 컴퓨터에 제공할 수 있도록 하는 키보드 및 마우스 또는 트랙볼과 같은 포인팅 장치를 갖는 컴퓨터 상에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 장치가 또한 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 모든 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자의해 사용되는 장치로부터 문서를 전송하고 문서를 수신함으로써, 예를 들어, 웹 브라우저에서 수신된 요청에 응답하여 사용자의 클라이언트 장치의 웹 브라우저에 웹 페이지를 전송함으로써, 사용자와 상호 작용할 수 있다.
여기에 설명된 발명의 실시예는 예컨대, 정보/데이터 서버로서 백엔드 컴포넌트를 포함하거나 미들웨어 컴포넌트, 예컨대, 어플리케이션 서버를 포함하거나 프론트 엔드 컴포넌트, 예컨대, 사용자가 여기에서 설명된 본 발명의 일 실시예와 상호 작용할 수 있도록 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터, 또는 이러한 백엔드, 미들웨어 및 프론트 엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 예를 들어 통신 네트워크와 같은 디지털 정보/데이터 통신의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예들은 근거리 통신망("LAN") 및 광역 네트워크 ("WAN"), 네트워크간(예컨대, 인터넷) 및 피어-투-피어 네트워크 (예컨대, 애드혹 피어-투-피어 네트워크)를 포함할 수 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 통상으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 구동되고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 (예컨대, 정보/데이터를 클라이언트 장치에 표시하고 클라이언트 장치와 상호 작용하는 사용자로부터 사용자 입력을 수신할 목적으로) 정보/데이터(예컨대, HTML 페이지)를 클라이언트 장치로 전송한다. 클라이언트 장치에서 생성된 정보/데이터 (예컨대, 사용자 상호 작용의 결과)는 서버에서 클라이언트 장치로부터 수신될 수 있다.
본 명세서는 많은 특정 실시예 세부 사항을 포함하지만, 이들은 임의의 실시예의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 실시시에 특정한 특징들의 설명으로서 해석되어야 한다. 개별 실시예들의 맥락에서 여기에 설명된 특정 특징들은 단일 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명되고 심지어 처음에 그렇게 주장될 수도 있더라도, 청구된 조합으로부터 하나 이상의 특징들이 어떤 경우에는 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대할 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되거나 모든 도시된 동작들이 수행 될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 전술한 실시예들에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있음이 이해되어야 한다.
따라서, 본 발명의 의 특정 실시예들이 설명되었다. 다른 실시예들이 이하의 청구범위의 범위 내에 있다. 일부 경우에, 청구범위에 언급된 동작은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 요구하지 않는다. 특정 실시예에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다.
여기에 제공된 개시의 많은 변경 및 다른 실시예들이 전술한 설명 및 관련 도면에 제시된 교시의 이점을 갖는 이들 실시예들이 속하는 기술 분야의 당업자에게 자명할 것이다. 따라서, 실시예는 개시된 특정 실시예로 제한되지 않으며, 변경 및 다른 실시예는 첨부된 청구범위의 범위 내에 포함되는 것으로 의도되는 것을 이해해야 한다. 본 명세서에서는 특정 용어가 사용되지만 제한을 목적으로 하는 것이 아니라 일반적이고 설명적인 의미로만 사용된다.
102: 센서
104: 게이트웨이
106: 클라우드

Claims (20)

  1. 매체 상에서 네트워크를 통해 저장 장치에 관련된 하나 이상의 파라미터들을 결정하기 위해 발견 서비스를 이용하는 단계;
    상기 매체 상에서 상기 네트워크를 통해 적어도 하나의 센서로부터 저장 장치로 데이터를 전송하는 단계;
    상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하는 단계; 및
    상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 저장 장치는 1) 이름공간 또는 2) 스트림 중 적어도 하나를 포함하며, 상기 방법은 상기 센서에 의해 상기 데이터의 적어도 일부를 저장하기 위한 상기 이름공간 또는 상기 스트림을 지정하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 호스트는 제1 호스트 및 제2 호스트를 포함하고, 상기 방법은 상기 저장 장치의 컨트롤러를 통해 상기 데이터에 관련돤 적어도 하나의 커맨드를 상기 제1 호스트 및 상기 제2 호스트로 전송하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 센서는 제1 센서 및 제2 센서를 포함하며, 상기 데이터는 상기 제1 센서에 관련된 제1 데이터 및 상기 제2 센서에 관련된 제2 데이터를 포함하고, 상기 데이터를 처리하는 단계는 상기 제1 데이터 및 상기 제2 데이터를 집계하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 데이터의 상기 일부가 상기 저장 장치에 저장되어 있음을 결정하는 단계;
    상기 데이터의 상기 일부에 관련된 크기가 임계치를 초과한 것을 결정하는 단계; 및
    상기 임계치를 초과한 상기 크기의 결정에 기초하여 상기 호스트로 비동기 알림을 전송하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 비동기 알림은 데이터 오프셋 정보, 데이터 위치 정보, 또는 데이터 길이 정보 중 적어도 하나를 포함하는 방법.
  7. 제1항에 있어서,
    상기 데이터는 온도 데이터, 압력 데이터, 수질 데이터, 근접 데이터, 화학 데이터, 모션 데이터, 전자기장 데이터, 습도 데이터, 사진 파일, 비디오 파일, 또는 오디오 파일 중 적어도 하나를 포함하는 방법.
  8. 제1항에 있어서,
    상기 센서가 a) NVMe-oF 인에이블된 센서를 포함하는 것, 또는 b) 상기 저장 장치는 이더넷-인에이블된 솔리드 스테이트 드라이브를 포함하는 것중 적어도 하나인 방법.
  9. 제1항에 있어서,
    상기 센서는 이더넷 프로토콜, RDMA(remote data memory access) 프로토콜, iWARP(Internet Wide Area RDMA Protocol), 전송 제어 프로토콜/인터넷 프로토콜(TCP/P), RoCE(RDMA over Converged Ethernet) 프로토콜, 인피니밴드(InfiniBand) 프로토콜, 5 세대(5G) 무선 프로토콜, Wi-Fi 프로토콜, 블루투스 프로토콜, 또는 BLE(Bluetooth low energy) 프로토콜을 사용하여 데이터를 전송하도록 구성된 방법.
  10. 제1항에 있어서,
    상기 저장 장치는 FPGA(field-programmable gate array), ASIC(application-specific integrated circuit), 또는 데이터를 처리하는 프로세서 중 적어도 하나를 포함하는 방법.
  11. 제1항에 있어서,
    상기 데이터를 처리하는 단계는 필터링 동작, 분류 동작 및 검색 동작중 적어도 하나를 포함하는 방법.
  12. 저장 장치에 있어서,
    컴퓨터 실행가능한 명령어들을 저장하는 적어도 하나의 메모리 장치;
    상기 메모리 장치를 액세스하도록 구성된 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 상기 컴퓨터 실행가능한 명령어들을 실행함으로써
    매체 상에서 네트워크를 통해 적어도 하나의 센서로부터 상기 저장 장치로 데이터를 수신하며;
    상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하며;
    상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 적어도 하나의 호스트로 전송하도록 구성되는 저장 장치.
  13. 제12항에 있어서,
    상기 저장 장치는 하나 이상의 이름공간들을 포함하며, 상기 프로세서는, 상기 센서에 의해 상기 하나 이상의 이름공간들 중 상기 데이터의 상기 적어도 일부를 저장하기 위한 이름공간을 지정하도록 더 구성되는 저장 장치.
  14. 제12항에 있어서,
    상기 적어도 하나의 호스트는 제1 호스트 및 제2 호스트를 포함하고, 상기 방법은 상기 저장 장치의 컨트롤러를 통해 상기 데이터에 관련돤 적어도 하나의 커맨드를 상기 제1 호스트 및 상기 제2 호스트로 전송하도록 더 구성되는 저장 장치.
  15. 제12항에 있어서,
    상기 적어도 하나의 센서는 제1 센서 및 제2 센서를 포함하며, 상기 데이터는 상기 제1 센서에 관련된 제1 데이터 및 상기 제2 센서에 관련된 제2 데이터를 포함하고, 상기 데이터를 처리하는 것은 상기 제1 데이터 및 상기 제2 데이터를 집계하는 것을 포함하는 저장 장치.
  16. 제12항에 있어서,
    상기 매체는 a) 유선 매체 또는 b) 무선 매체를 적어도 부분적으로 포함하는 저장 장치.
  17. 제12항에 있어서,
    상기 센서는 제1 위치에 위치하며, 상기 저장 장치는 제2 위치에 위치하며, 상기 제1 위치 및 상기 제2 위치는 미리결정된 거리만큼 지리적으로 분리되어 있는 저장 장치.
  18. 제12항에 있어서,
    상기 데이터는 온도 데이터, 압력 데이터, 수질 데이터, 근접 데이터, 화학 데이터, 모션 데이터, 전자기장 데이터, 습도 데이터, 사진 파일, 비디오 파일, 또는 오디오 파일 중 적어도 하나를 포함하는 저장 장치.
  19. 제12항에 있어서,
    상기 센서는 a) NVMe-oF 인에이블된 센서를 포함하는 것, 또는 b) 상기 저장 장치는 이더넷-인에이블된 솔리드 스테이트 드라이브를 포함하는 것중 적어도 하나인 저장 장치.
  20. 저장 장치, 적어도 하나의 센서, 및 적어도 하나의 호스트;
    상기 저장 장치는 컴퓨터 실행가능한 명령어들을 저장하는 적어도 하나의 메모리 장치; 및,
    상기 메모리 장치를 액세스하도록 구성된 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 상기 컴퓨터 실행가능한 명령어들을 실행함으로써
    매체 상에서 네트워크를 통해 상기 적어도 하나의 센서로부터 상기 저장 장치로 데이터를 수신하며;
    상기 데이터를 처리하고 상기 저장 장치에 상기 데이터의 적어도 일부를 저장하며;
    상기 네트워크를 통해 상기 데이터의 적어도 제2 부분을 상기 적어도 하나의 호스트로 전송하도록 구성되는 시스템.

KR1020210036938A 2020-07-13 2021-03-22 저장-효율적인 센서들을 위한 시스템 및 방법 KR20220008201A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/927,858 US11778055B2 (en) 2020-07-13 2020-07-13 Systems and methods for storage-efficient sensors
US16/927,858 2020-07-13

Publications (1)

Publication Number Publication Date
KR20220008201A true KR20220008201A (ko) 2022-01-20

Family

ID=76355260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210036938A KR20220008201A (ko) 2020-07-13 2021-03-22 저장-효율적인 센서들을 위한 시스템 및 방법

Country Status (5)

Country Link
US (2) US11778055B2 (ko)
EP (1) EP3941022B1 (ko)
KR (1) KR20220008201A (ko)
CN (1) CN113934366A (ko)
TW (1) TW202203618A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902955B1 (en) * 2020-05-01 2021-01-26 Georgetown University Detecting COVID-19 using surrogates
US11805171B2 (en) * 2021-03-04 2023-10-31 Dell Products L.P. Automated ethernet layer 3 (L3) connectivity between non-volatile memory express over fabric (NVMe-oF) hosts and NVM-oF subsystems using bind
US11818031B2 (en) 2021-03-04 2023-11-14 Dell Products L.P. Automated internet protocol (IP) route update service for ethernet layer 3 (L3) IP storage area networks (SANs)
CN114760326B (zh) * 2022-03-02 2024-07-23 杭州华橙软件技术有限公司 数据存储方法、数据查询方法、数据存储系统和电子装置
US20230297280A1 (en) * 2022-03-18 2023-09-21 Dell Products L.P. Storage subsystem-driven zoning protocol embodiments in a nonvolatile memory express environment
CN115116224B (zh) * 2022-06-24 2023-08-18 山东旗帜信息有限公司 一种边缘端数据采集传输系统及方法
US12039199B2 (en) 2022-07-13 2024-07-16 Dell Products L.P. Discovery log entry identifiers (DLEIDs) applications in non-volatile memory express® environments
CN115543474B (zh) * 2022-08-30 2023-10-20 中科驭数(北京)科技有限公司 NVMe-oF半卸载处理方法及装置、硬件加速设备
US20240171460A1 (en) * 2022-11-17 2024-05-23 Dell Products, L.P. Firmware-based network management in heterogeneous computing platforms
CN116434818B (zh) * 2023-03-28 2024-02-09 深圳市芯存科技有限公司 基于fpga的ddr3多端口读写存储管理方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9565275B2 (en) 2012-02-09 2017-02-07 Rockwell Automation Technologies, Inc. Transformation of industrial data into useful cloud information
GB2413914B (en) 2003-01-16 2007-04-04 Obs Inc Systems and methods for mobile security and monitoring
US7457834B2 (en) * 2004-07-30 2008-11-25 Searete, Llc Aggregation and retrieval of network sensor data
US7536388B2 (en) 2004-03-31 2009-05-19 Searete, Llc Data storage for distributed sensor networks
US7292963B2 (en) * 2004-10-29 2007-11-06 Sap Aktiengesellschaft Aggregating sensor data
EP1954004B1 (en) 2007-01-31 2012-01-18 Deutsche Telekom AG Method for collaborative storage of event-related data in sensor networks and sensor network capable of providing a file system for storing event-related data
US8429373B2 (en) * 2009-07-15 2013-04-23 International Business Machines Corporation Method for implementing on demand configuration changes
US8458138B1 (en) * 2009-11-03 2013-06-04 Network Appliance, Inc. Dynamic discovery of storage resource topology
US20110231535A1 (en) 2010-03-18 2011-09-22 Ian Charles Starnes Wireless Sensor Network
CN102948117B (zh) * 2010-04-29 2016-05-25 惠普发展公司,有限责任合伙企业 信息追踪系统和方法
US9823078B2 (en) * 2010-12-23 2017-11-21 Microsoft Technology Licensing, Llc Generating maps of private spaces using mobile computing device sensors
US9553759B2 (en) * 2011-10-13 2017-01-24 Omron Corporation Network system, node device group, and sensor device group
US9473728B2 (en) * 2011-12-08 2016-10-18 Sony Corporation Home audio video display device (AVDD) as sensor monitor
US9922378B2 (en) * 2011-12-27 2018-03-20 Nokia Technologies Oy Method and apparatus for providing intent-based monitoring using sensory information
US9100828B2 (en) 2012-09-30 2015-08-04 Apple Inc. Transferring data over Bluetooth using intermediary bridge
US9301325B1 (en) * 2012-12-12 2016-03-29 Marvell International Ltd. Method and apparatus for low-energy sensor wireless connection
US9843847B2 (en) 2013-04-25 2017-12-12 Telephone And Data Systems, Inc. Temperature-humidity monitoring assembly for closed server cabinet
EP2997499A4 (en) 2013-05-16 2017-01-11 Convida Wireless, LLC Semantic naming model
WO2017024288A1 (en) * 2015-08-05 2017-02-09 Chita Inc. Managing regulated content items stored on non-regulated storage platforms
US9834713B2 (en) 2016-02-23 2017-12-05 3M Innovative Properties Company Oriented thermally conductive dielectric film
US10175891B1 (en) * 2016-03-15 2019-01-08 Pavilion Data Systems, Inc. Minimizing read latency for solid state drives
US10819793B2 (en) * 2016-09-15 2020-10-27 At&T Mobility Ii Llc Method and apparatus for extending content access
US10356197B2 (en) * 2016-11-21 2019-07-16 Intel Corporation Data management in an information-centric network
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US10223254B1 (en) * 2017-11-16 2019-03-05 Micron Technology, Inc. Namespace change propagation in non-volatile memory devices
US20190272474A1 (en) 2018-03-01 2019-09-05 Intauleca Corp. Resilient management of resource utilization
CA3116547A1 (en) * 2018-10-15 2020-04-23 Clean Claims IP, LLC Real-time workflow tracking
US11265382B2 (en) * 2019-04-12 2022-03-01 Lockheed Martin Corporation Management of sensor data collected across sensor nodes
US20210241926A1 (en) * 2020-01-31 2021-08-05 Splunk Inc. Sensor data device

Also Published As

Publication number Publication date
CN113934366A (zh) 2022-01-14
EP3941022A1 (en) 2022-01-19
US20230403333A1 (en) 2023-12-14
EP3941022B1 (en) 2024-04-10
US11778055B2 (en) 2023-10-03
TW202203618A (zh) 2022-01-16
US20220014592A1 (en) 2022-01-13

Similar Documents

Publication Publication Date Title
EP3941022B1 (en) Systems and methods for storage-efficient sensors
US11902092B2 (en) Systems and methods for latency-aware edge computing
US11558270B2 (en) Monitoring a stale data queue for deletion events
US20210397577A1 (en) Systems and methods for communications within a storage chassis
CN104598495A (zh) 基于分布式文件系统的分级存储方法及系统
US20210250245A1 (en) Communication Network Out-of-Capacity Predictions
US10275476B2 (en) Machine to machine data aggregator
JP2020091706A (ja) ストレージ管理装置、方法およびプログラム
US20200322253A1 (en) Network latency measurement and analysis system
KR20210124082A (ko) 구성 가능한 일관성 장치들을 위한 시스템 및 방법
US11900170B2 (en) Cloud-based systems for optimized multi-domain processing of input problems using multiple solver types
US20230042551A1 (en) Systems, methods, and apparatus for the management of device local memory
De Masi et al. Towards accurate models for predicting smartphone applications’ QoE with data from a living lab study
US11064028B2 (en) Method and apparatus for deduplication of sensor data
US11983644B2 (en) Insight allotment to edged locations
CN112805983B (zh) 用于延迟感知边缘计算的系统和方法
US20240241885A1 (en) Dynamic data collection
EP4350500A1 (en) Systems, methods, and apparatus for transferring programs for computational storage devices
US20230289084A1 (en) Systems and methods for checking data alignment between applications, file systems, and computational storage devices
US20220357890A1 (en) Systems, methods, and apparatus for computational storage functions
US20240176750A1 (en) Systems, methods, and apparatus for memory protection for computational storage devices
EP4155895A1 (en) Systems and methods for near-storage processing in solid state drives
US20230393962A1 (en) Automatic diagnostics and mitigation for improving application responsiveness
CN117908770A (zh) 用于传送计算存储设备的程序的系统、方法和装置
EP4328750A2 (en) System and method for secure distributed processing across networks of heterogeneous processing nodes