KR20220164768A - 에지 디바이스에서 추론 처리를 위한 장치 및 방법 - Google Patents

에지 디바이스에서 추론 처리를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20220164768A
KR20220164768A KR1020227038572A KR20227038572A KR20220164768A KR 20220164768 A KR20220164768 A KR 20220164768A KR 1020227038572 A KR1020227038572 A KR 1020227038572A KR 20227038572 A KR20227038572 A KR 20227038572A KR 20220164768 A KR20220164768 A KR 20220164768A
Authority
KR
South Korea
Prior art keywords
data
pattern matching
pattern
memory
edge device
Prior art date
Application number
KR1020227038572A
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 KR20220164768A publication Critical patent/KR20220164768A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • G06N5/047Pattern matching networks; Rete networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/75Information technology; Communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Dram (AREA)

Abstract

본 개시의 실시예는 사물 인터넷(IoT) 시스템이 클라우드 컴퓨팅 시스템과 통신하지 않고 적어도 일부 기능을 수행하는 에지 디바이스를 포함하는 장치, 시스템, 방법에 관한 것이다. 에지 디바이스는 온 메모리 패턴 매칭 기능을 가진 메모리를 포함할 수 있다. 에지 디바이스는 에지 디바이스 또는 에지 디바이스와 통신하는 센서들에 의해 수집된 데이터에 대해 패턴 매칭 동작을 수행할 수 있다. 패턴 매칭 동작의 결과를 기초로, 에지 디바이스는 클라우드 컴퓨팅 시스템으로 데이터 송신, 알람 활성화 및/또는 데이터 송신 빈도의 변경과 같은 다양한 기능을 수행할 수 있다.

Description

에지 디바이스에서 추론 처리를 위한 장치 및 방법
관련 출원
본 출원은 2020년 4월 15일에 출원된 "에지 디바이스에서 추론 처리를 위한 장치 및 방법"이라는 명칭의 미국 특허 출원 번호 제16/849,819호에 대한 우선권을 주장하며, 이는 그 전체가 모든 목적을 위해 참조로 포함된다.
사물인터넷(IoT) 시스템에 대한 관심이 높아지고 있으며, 여기서 IoT는 일반적으로 환경의 다양한 디바이스(예를 들어, 사물)에서 데이터가 수집될 수 있고 데이터가 처리되거나 달리 활용되어 결정을 내리고, 비즈니스를 수행하거나, 일반적으로 삶을 개선할 수 있는 시스템을 지칭한다. 일반적으로 컴퓨팅 기능이 제한된 센서 및/또는 에지 디바이스를 사용하여 데이터를 수집하고 다른 데이터와 함께 더 복잡한 처리 및/또는 의사 결정을 위해 중앙 클라우드 컴퓨팅 시스템에 데이터(또는 데이터의 일부 또는 기타 최소한으로 처리된 데이터)를 제공할 수 있다.예를 들어, 스마트 스피커는 사용자로부터 오디오 데이터를 수신할 수 있으며, 예를 들어 사용자는 스마트 스피커에 질문을 할 수 있다. 스마트 스피커는 음성 인식 처리를 위해 오디오 데이터를 클라우드 컴퓨팅 시스템으로 송신할 수 있다. 오디오 데이터를 처리한 후, 클라우드 컴퓨팅 시스템은 스마트 스피커의 오디오 기능을 통해 사용자에게 제공될 사용자의 질문에 대한 답변을 제공할 수 있다.
본 명세서에 설명된 예는 또한 동적 랜덤 액세스 메모리(DRAM)와 같은 휘발성 메모리를 포함하는 메모리 디바이스를 포함할 수 있다. 데이터는 DRAM의 개별 메모리 셀들에 저장될 수 있다. 메모리 셀들은 로우들과 컬럼들의 어레이로 구성될 수 있다. 로우의 각 메모리 셀은 워드 라인에 결합되고 컬럼의 각 메모리 셀은 비트 라인에 결합될 수 있다. 따라서 모든 메모리 셀은 워드 라인과 비트 라인에 결합된다. 모두 일반적으로 처리 회로부라고 하는 마이크로프로세서, 그래픽 처리 장치 또는 주문형 집적 회로(ASIC)와 같은 기타 회로에 의한 다양한 계산을 수행하기 위해 데이터가 DRAM에 제공되고 DRAM에서 검색될 수 있다.
대부분의 계산 부담을 처리하기 위해 클라우드 컴퓨팅을 활용하는 IoT 시스템은 에지 디바이스를 작고 저렴하게 유지하도록 허용할 수 있지만 에지 디바이스와 클라우드 간의 데이터 송신은 바람직하지 않은 지연을 초래하거나 상당한 대역폭을 사용할 수 있다.
본 개시의 적어도 하나의 예에 따르면, 장치는 에지 디바이스에 의해 수집된 데이터 및 실행 가능한 명령어를 저장하도록 구성된 컴퓨터 판독가능 매체, 실행 가능한 명령어를 실행하도록 구성된 처리 회로부, 및 패턴 및 데이터의 적어도 일부에 대해 패턴 매칭 동작을 수행하고 패턴 매칭 동작의 결과를 처리 회로부로 송신하도록 구성된 패턴 매칭 회로부를 포함하는 메모리를 포함할 수 있다.
본 개시의 적어도 하나의 예에 따르면, 장치는 적어도 하나의 패턴을 생성하고 적어도 하나의 패턴 매칭 동작을 수행하기 위해 적어도 하나의 패턴을 에지 디바이스에 제공하고, 에지 디바이스로부터 데이터를 수신하도록 구성된 컴퓨팅 디바이스를 포함할 수 있고, 데이터의 적어도 일부는 적어도 하나의 패턴 매칭 동작에 적어도 부분적으로 응답하여 수신된다.
본 개시의 적어도 하나의 예에 따르면, 방법은 에지 디바이스의 메모리에 패턴을 저장하는 단계, 에지 디바이스의 메모리에 데이터를 저장하는 단계, 및 메모리 상의 패턴 매칭 회로부로 패턴 및 데이터의 적어도 일부에 대해 패턴 매칭 동작을 수행하는 단계를 포함한다.
도 1은 사물인터넷(IoT) 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 반도체 디바이스의 블록도이다.
도 3은 본 개시의 실시예에 따른 패턴 매칭 회로부의 블록도이다.
도 4는 본 개시의 실시예들에 따른 에지 디바이스의 블록도이다.
도 5는 본 개시의 실시예에 따른 방법의 흐름도이다.
특정 실시예에 대한 다음 설명은 본질적으로 예시일 뿐이며, 본 개시 내용 또는 그 적용 또는 사용의 범위를 제한하려는 의도가 결코 아니다. 본 시스템 및 방법의 실시예에 대한 다음의 상세한 설명에서, 본 명세서의 일부를 형성하고 설명된 시스템 및 방법이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본원에 개시된 시스템 및 방법을 실시할 수 있도록 충분히 상세하게 설명되어 있으며, 다른 실시예가 활용될 수 있고 본 개시의 사상 및 범위를 벗어나지 않고 구조적 및 논리적 변경이 이루어질 수 있음을 이해해야 한다. 더욱이, 명료함을 위해, 특정 피쳐의 상세한 설명은 본 개시의 실시예의 설명을 모호하게 하지 않기 위해 당업자에게 명백할 때 논의되지 않을 것이다. 따라서 다음의 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 본 발명의 범위는 첨부된 청구범위에 의해서만 정의된다.
IoT 시스템(100)의 예가 도 1에 도시되어 있다. IoT 시스템(100)은 클라우드 컴퓨팅 시스템(102) 및 하나 이상의 에지 디바이스들(104)을 포함한다. IoT 시스템(100)은 다른 컴퓨팅 디바이스(106) 및/또는 하나 이상의 센서들(108)을 더 포함할 수 있다. 클라우드 컴퓨팅 시스템(102)은 계산을 수행하기 위한 하나 이상의 컴퓨팅 디바이스들(예를 들어, 서버들)를 포함할 수 있다. 계산은 클라우드 컴퓨팅 시스템(102)의 다수의 컴퓨팅 디바이스들에 걸쳐 병렬로 수행될 수 있다. 클라우드 컴퓨팅 시스템(102)이 도시되고 설명되지만, 중앙 컴퓨팅 시스템, 엔터프라이즈 컴퓨팅 시스템, 및/또는 하나 이상의 컴퓨터 또는 다른 처리 디바이스와 같은 다른 컴퓨팅 시스템이 추가로 및/또는 대신 사용될 수 있음을 이해해야 한다.
에지 디바이스(104)는 데이터를 수집하고 무선 네트워크, 유선 네트워크, 또는 이들의 조합을 통해 수집된 데이터를 클라우드 컴퓨팅 시스템(102)에 제공할 수 있다. 클라우드 컴퓨팅 시스템(102)은 에지 디바이스(104)에 의해 제공되는 데이터에 적어도 부분적으로 기초하여 계산을 수행할 수 있다. 일부 애플리케이션에서, 클라우드 컴퓨팅 시스템(102)은 계산을 수행하기 위해 다수의 에지 디바이스들(104)로부터 수신된 데이터를 결합할 수 있다. 예를 들어, 다수의 에지 디바이스들(104)이 브리지(bridge)에 위치할 수 있고 클라우드 컴퓨팅 시스템(102)은 브리지의 상태(예를 들어, 안전, 안전하지 않음)를 계산하기 위해 에지 디바이스들(104)로부터의 데이터를 결합할 수 있다. 클라우드 컴퓨팅 시스템(102)은 데이터를 처리하기 위해 다양한 기술 중 하나 이상을 사용할 수 있다(예를 들어, 머신 러닝, 빅 데이터 분석). 일부 애플리케이션에서, 클라우드 컴퓨팅 시스템(102)은 패턴 매칭 동작(예를 들어, 데이터를 훈련 동안 머신 러닝 모델에 의해 식별된 패턴과 비교)을 수행할 수 있다.
일부 애플리케이션에서, 클라우드 컴퓨팅 시스템(102)은 하나 이상의 에지 디바이스들(104)에 계산 결과를 제공할 수 있다(예를 들어, 스마트 스피커에 제공된 사용자의 질문에 대한 답변). 선택적으로, 클라우드 컴퓨팅 시스템(102)은 결과를 (추가적으로 또는 대안적으로) 다른 컴퓨팅 디바이스(106)에 제공할 수 있다. 컴퓨팅 디바이스(106)는 에지 디바이스(104)로부터 멀리 떨어져 있을 수 있다. 브리지의 예로 돌아가서, 에지 디바이스(104)는 브리지 상에 위치할 수 있고 컴퓨팅 디바이스(106)는 중앙 제어 센터(예를 들어, 부서 사무실 건물)에 있을 수 있다. 일부 경우에, 컴퓨팅 디바이스(106)는 클라우드 컴퓨팅 시스템(102) 및/또는 에지 디바이스(104)의 동작을 제어하기 위한 제어 신호를 제공할 수 있다. 예를 들어, 컴퓨팅 디바이스(106)는 클라우드 컴퓨팅 시스템(102)이 에지 디바이스(104)로부터 수신된 데이터에 대해 어떤 유형의 계산을 수행하는지 결정할 수 있다. 다른 예에서, 컴퓨팅 디바이스(106)는 (클라우드 컴퓨팅 시스템(102)을 통해) 에지 디바이스들(104) 중 하나 이상을 인에이블 또는 디스에이블할 수 있다.
일부 애플리케이션에서, 클라우드 컴퓨팅 시스템(102)은 에지 디바이스(104)가 기능을 수행하게 할 수 있는 하나 이상의 제어 신호를 에지 디바이스(104)에 제공할 수 있다. 예를 들어, 제어 신호는 에지 디바이스(104)가 수집된 데이터를 클라우드 컴퓨팅 시스템(102)으로 송신하게 할 수 있다. 일부 애플리케이션에서, 제어 신호 중 하나 이상은 에지 디바이스(104)에 의해 제공되는 데이터에 기초한 계산 결과에 적어도 부분적으로 기초할 수 있다. 다시 브리지 예제로 돌아가서, 제공된 데이터가 브리지의 상태가 악화되고 있지만 아직 안전하지 않은 것으로 간주되지 않은 것을 나타내는 경우 제어 신호는 에지 디바이스(104)로 하여금 데이터를 클라우드 컴퓨팅 시스템(102)에 더 자주 송신하게 할 수 있다. 또 다른 예에서 제공된 데이터에 브리지가 안전하지 않은 것으로 표시하면 제어 신호는 에지 디바이스(104)가 에지 디바이스(104)에 포함되거나 그와 통신하는 청각적 또는 시각적 알람(110)(예를 들어, 사이렌, 섬광)을 활성화하게 할 수 있다.
선택적으로, 에지 디바이스(104)는 하드와이어 연결, 무선 연결, 또는 이들의 조합을 통해 하나 이상의 센서들(108)를 포함할 수 있고 및/또는 이들과 통신할 수 있다. 센서(108)는 데이터를 수집하고 이를 클라우드 컴퓨팅 시스템(102)으로의 후속 송신을 위해 에지 디바이스(104)에 제공할 수 있다. 브리지 예에서, 센서들(108)은 스트레인 게이지, 압전 압력 센서 및 서미스터를 포함할 수 있지만 이에 제한되지 않는다.
계산 부담의 대부분을 처리하기 위해 클라우드 컴퓨팅을 활용하는 IoT 시스템은 에지 디바이스를 작고 저렴하게 유지하도록 허용할 수 있지만, 에지 디바이스(104)와 클라우드 컴퓨팅 시스템(102) 사이의 데이터 송신은 바람직하지 않은 지연을 초래할 수 있고 및/또는 상당한 대역폭을 사용할 수 있다. 예를 들어, 브리지가 안전하지 않은 경우, 브리지에서 알람이 즉시 활성화되어야 할 수 있다. 클라우드 컴퓨팅 시스템(102)과 에지 디바이스(104) 사이에서 정보를 송신하는 데 필요한 시간은 원하는 것보다 더 길 수 있고 및/또는 클라우드 컴퓨팅 시스템(102)과 에지 디바이스(104) 사이의 연결이 중단될 수 있다. 다른 예에서, 에지 디바이스(104) 및/또는 센서들(108)에 의해 생성된 모든 데이터를 클라우드 컴퓨팅 시스템(102)으로 송신하는 것은 시스템(100)의 다른 디바이스들 사이의 통신을 방해할 수 있다.
적어도 일부 컴퓨팅 작업은 에지 디바이스에서 로컬로 수행되는 것이 바람직하다. 예를 들어, 에지 디바이스가 데이터를 분석하여 어떤 데이터가 클라우드 컴퓨팅 시스템으로 송신되어야 하는지를 결정하는 것이 바람직할 수 있다. 다른 예에서, 에지 디바이스가 클라우드 컴퓨팅 시스템과 상호 작용하지 않고 특정 임계 상태(critical state)를 검출하는 것이 바람직할 수 있다. 이렇게 하면 임계 상태(예를 들어, 보안 침해, 구조적 오류)에 대한 응답에서 지연을 줄일 수 있다. 데이터 분류, 데이터에 기반한 의사 결정 및/또는 에지 디바이스에 의해 국부적으로 수행되는 기타 데이터 분석은 일부 애플리케이션에서 "에지에서의 추론"이라고 할 수 있다.
에지 디바이스는 일반적으로 장기 데이터 스토리지(예를 들어, 하드 드라이브, 플래시 메모리)와 DRAM을 갖지만, 크기, 에너지 소비 및/또는 비용을 줄이기 위해 많은 에지 디바이스는 풀 사이즈 컴퓨팅 디바이스(예를 들어, 서버, 데스크탑, 노트북)의 전체 처리 기능을 포함하지 않으며 완전한 기능을 갖춘 프로세서(예를 들어, AMD의 Ryzen 시리즈, Intel의 Core i9 시리즈)가 없을 수 있다. 따라서 에지 디바이스에 대해 위임될 수 있는 컴퓨팅 작업이 제한될 수 있다.
본 개시의 실시예들에 따르면, 에지 디바이스는 DRAM과 같은 메모리를 포함할 수 있고, 이는 본 명세서에서 패턴 매칭 회로부라고 하는, 패턴 매칭 계산을 수행하기 위한 회로부를 포함할 수 있다. 일부 실시예에서, 패턴 매칭 회로부는 비교기 회로 및 비교기 회로와 통신하는 하나 이상의 레지스터들을 포함할 수 있다. 클라우드 컴퓨팅 시스템 또는 다른 컴퓨팅 디바이스로부터의 하나 이상의 패턴들은 하나 이상의 레지스터들 중 적어도 하나에 저장될 수 있다. 데이터는 에지 디바이스에 의해 수집되고 및/또는 하나 이상의 센서들로부터 에지 디바이스에 의해 수신될 수 있다. 데이터는 메모리의 메모리 어레이에 제공될 수 있다. 데이터는 하나 이상의 패턴들이 데이터에 존재하는지 여부를 결정하기 위해 분석될 수 있다(예를 들어, 데이터는 하나 이상의 패턴 매치들을 포함함). 패턴 매칭은 (예를 들어, 온 또는 온보드) 메모리에 의해 수행될 수 있고 분석될 데이터는 패턴 매칭 동작을 위해 메모리 외부의 다른 처리 회로부에 제공될 필요가 없다. 오히려, 일부 실시예에서, 패턴 매칭 동작의 결과만이 메모리에 의해 제공될 수 있다. 그런 다음 에지 디바이스는 결과를 사용하여 기능을 수행할 수 있다(예를 들어, 데이터의 서브세트를 클라우드 컴퓨팅 시스템으로 발송, 알람 활성화).
일부 어플리케이션에서 메모리에 대한 패턴 매칭 동작을 수행하고 결과만 제공하는 것은 완전한 기능을 갖춘 프로세서 없이 에지 디바이스에 의해 수행될 수 있는 계산을 증가시킬 수 있다. 일부 애플리케이션에서, 메모리에 대한 패턴 매칭 동작을 수행하는 것은 송신되는 데이터의 양 및/또는 에지 디바이스와 클라우드 컴퓨팅 시스템 간의 데이터 송신 빈도를 줄일 수 있다. 일부 애플리케이션에서 메모리에 대한 패턴 매칭 동작을 수행하면 데이터가 표시되는 임계 상태에 대한 반응 지연을 줄일 수 있다.
도 2는 본 개시의 적어도 하나의 실시예에 따른 반도체 디바이스(200)의 전체 구성을 나타내는 블록도이다. 반도체 디바이스(200)는 단일 반도체 칩에 집적된 DRAM 디바이스와 같은 반도체 메모리 디바이스일 수 있다.
반도체 디바이스(200)는 메모리 어레이(218)를 포함한다. 메모리 어레이(218)는 복수의 메모리 뱅크들을 포함하는 것으로 도시되어 있다. 도 2의 실시예에서, 메모리 어레이(218)는 8개의 메모리 뱅크들 BANK0-BANK7을 포함하는 것으로 도시되어 있다. 다른 실시예에서 더 많거나 더 적은 뱅크들이 메모리 어레이(218)에 포함될 수 있다. 도 2는 하나의 메모리 어레이(218)만을 예시하지만, 다른 실시예에서 디바이스(200)는 다수의 메모리 어레이들(218)을 포함할 수 있다는 것이 이해된다. 각 메모리 뱅크는 복수의 워드 라인들 WL, 복수의 비트 라인들 BL 및 /BL, 및 복수의 워드 라인들 WL과 복수의 비트 라인들 BL 및 /BL의 교차점에 배치된 복수의 메모리 셀들 MC을 포함한다. 워드 라인 WL의 선택은 로우 디코더(208)에 의해 수행되고 비트 라인들 BL 및 /BL의 선택은 컬럼 디코더(210)에 의해 수행된다. 선택된 워드 라인 WL은 워드 라인 드라이버 WD에 의해 원하는 전하로 구동될 수 있다. 도 2의 실시예에서, 로우 디코더(208)는 각각의 메모리 뱅크에 대한 각각의 로우 디코더를 포함하고 컬럼 디코더(210)는 각각의 메모리 뱅크에 대한 각각의 컬럼 디코더를 포함한다. 비트 라인들 BL 및 /BL은 개별 감지 증폭기(SAMP)에 결합된다.
비트 라인 BL 또는 /BL으로부터의 판독 데이터는 감지 증폭기 SAMP에 의해 증폭되고 상보적 로컬 데이터 라인들(LIOT/B)을 통해 서브 증폭기 전송 게이트(220)에 제공된다. 서브 증폭기 전송 게이트(220)는 적절한 LIOT/B와 적절한 공유 메인 데이터 라인들(MIO) 사이에 전도성 경로를 형성하기 위한 스위치의 역할을 할 수 있다. 판독 데이터는 IO 회로(222)에 데이터를 제공하는 판독 증폭기(226)에 서브 증폭기 전송 게이트(220)에 의해 제공되는 전도성 경로를 통해 로컬 데이터 라인 LIOT/B으로부터 메인 데이터 라인 MIO으로 전달할 수 있다. IO 회로(222)로부터 수신된 기록 데이터는 기록 증폭기(226)로부터 출력되고 상보적 메인 데이터 라인 MIO, 서브 증폭 전송 게이트(220), 및 상보적 로컬 데이터 라인 LIOT/B을 통해 감지 증폭기 SAMP에 제공되고, 비트 라인 BL 또는 /BL에 결합된 메모리 셀(MC)에 기록된다.
반도체 디바이스(200)는 메모리 제어기(도 2에 도시되지 않음)와 같은 반도체 디바이스(200) 외부(예를 들어, 메모리 외부 또는 그와 떨어진) 디바이스로부터 정보를 송신 및 수신하기 위해 복수의 외부 단자들을 사용할 수 있다. 외부 단자들은 커맨드 및 어드레스를 수신하기 위해 커맨드 및 어드레스 버스에 결합된 커맨드 및 어드레스(C/A) 단자들, CS 신호, 클록 CK 및 /CK를 수신하는 클록 단자, 데이터를 제공하는 데이터 단자 DQ, 알람 신호를 제공하기 위한 알람 핀 ALERT, 및 전원 전위들 VDD1, VDD2, VSS, VDDQ 및 VSSQ를 수신하는 전원 단자들을 포함할 수 있다.
클록 단자에는 입력 회로(212)에 제공되는 외부 클록들 CK 및 /CK가 제공된다. 외부 클록들은 상호 보완적일 수 있다. 입력 회로(212)는 CK 및 /CK 클록들에 기초하여 내부 클록 ICLK를 생성한다. ICLK 클록은 커맨드 디코더(210) 및 내부 클록 생성기(214)에 제공된다. 내부 클록 생성기(214)는 ICLK 클록에 기초하여 다양한 내부 클록들 LCLK을 제공한다. LCLK 클록들은 다양한 내부 회로들의 타이밍 동작에 사용될 수 있다. 내부 데이터 클록들 LCLK은 입력/출력 회로(222)에 제공되어 입력/출력 회로(222)에 포함된 회로들의 동작을 타이밍하고, 예를 들어 데이터 수신기에 제공되어 기록 데이터의 수신을 타이밍한다.
C/A 단자에는 메모리 어드레스들이 제공될 수 있다. C/A 단자에 제공된 메모리 어드레스들은 커맨드/어드레스 입력 회로(202)를 통해 어드레스 디코더(204)에 제공된다. 어드레스 디코더(204)는 어드레스를 수신하고 디코딩된 로우 어드레스(XADD)를 로우 디코더(208)에 공급하고 디코딩된 컬럼 어드레스(YADD)를 컬럼 디코더(210)에 공급한다. 어드레스 디코더(204)는 또한 디코딩된 뱅크 어드레스 BADD를 공급할 수 있고, 이는 디코딩된 로우 어드레스 XADD 및 컬럼 어드레스 YADD를 포함하는 메모리 어레이(218)의 뱅크를 표시할 수 있다. C/A 단자에는 커맨드가 공급될 수 있다. 커맨드의 예는 판독 동작을 수행하기 위한 판독 커맨드 및 기록 동작을 수행하기 위한 기록 커맨드와 같은 메모리에 액세스하기 위한 액세스 커맨드와 다른 커맨드 및 동작을 포함한다. 액세스 커맨드는 액세스될 메모리 셀(들)을 표시하기 위해 하나 이상의 로우 어드레스 XADD, 컬럼 어드레스 YADD, 및 뱅크 어드레스 BADD와 연관될 수 있다.
커맨드는 커맨드/어드레스 입력 회로(202)를 통해 커맨드 디코더(206)에 내부 커맨드 신호로서 제공될 수 있다. 커맨드 디코더(206)는 내부 커맨드 신호를 디코딩하여 다양한 내부 신호 및 동작을 수행하기 위한 커맨드를 생성하는 회로를 포함한다. 예를 들어, 커맨드 디코더(206)는 워드 라인 WL을 선택하기 위한 로우 커맨드 신호 및 비트 라인 BL을 선택하기 위한 컬럼 커맨드 신호를 제공할 수 있다. 다른 예에서, 커맨드 디코더(206)는 모드 레지스터(232)에 제공된 모드 레지스터 커맨드를 제공하여 본 개시의 실시예들에 따른 패턴 매칭 동작들을 가능하게 하는 메모리 조건과 같은 메모리 동작 조건을 선택할 수 있다.
디바이스(200)는 판독 커맨드인 액세스 커맨드를 수신할 수 있다. 활성화 커맨드가 수신되고, 로우 및 뱅크 어드레스가 활성화 커맨드로 적시에 공급된 후 판독 커맨드와 컬럼 어드레스가 판독 커맨드로 적시에 공급되면, 판독 데이터는 로우 어드레스 및 컬럼 어드레스에 대응하는 메모리 어레이(218)의 메모리 셀 MC로부터 판독된다. 판독 커맨드는 커맨드 디코더(206)(예를 들어, 커맨드 제어기)에 의해 수신되고, 이는 메모리 어레이(218)로부터의 판독 데이터가 판독 증폭기(228)에 제공되도록 내부 커맨드를 제공한다. 판독 데이터는 입력/출력 회로(222)를 통해 데이터 단자 DQ로부터 외부로 출력된다.
디바이스(200)는 기록 커맨드인 액세스 커맨드를 수신할 수 있다. 활성화 커맨드가 수신되고 로우 및 뱅크 어드레스가 활성화 커맨드로 적시에 공급된 후 기록 커맨드와 컬럼 어드레스가 기록 커맨드로 적시에 공급되면, 데이터 단자 DQ에 공급된 기록 데이터는 로우 어드레스 및 컬럼 어드레스에 대응하는 메모리 어레이(218)의 메모리 셀에 기록된다. 기록 커맨드는 커맨드 디코더(206)에 의해 수신되고, 이는 기록 데이터가 입력/출력 회로(222)의 데이터 수신기에 의해 수신되도록 내부 커맨드를 제공한다. 입력/출력 회로(222)의 데이터 수신기에 의한 기록 데이터의 수신을 타이밍하기 위해 기록 클록이 외부 클록 단자에 또한 제공될 수 있다. 기록 데이터는 입력/출력 회로(222)를 통해 기록 증폭기(226)에 공급되고, 기록 증폭기(226)에 의해 메모리 어레이(218)에 공급되어 메모리 셀 MC에 기록된다.
디바이스(200)는 또한 리프레시 동작을 수행하게 하는 커맨드를 수신할 수 있다. 리프레시 신호 REF는 커맨드 디코더(206)가 자동-리프레시 및/또는 다른 리프레시 커맨드를 표시하는 신호를 수신할 때 활성화되는 펄스 신호일 수 있다. 일부 실시예에서, 리프레시 커맨드는 메모리 디바이스(200)에 대해 외부적으로 발행될 수 있다. 일부 실시예에서, 리프레시 커맨드는 디바이스(200)의 컴포넌트에 의해 주기적으로 생성될 수 있다. 리프레시 신호 REF는 리프레시 제어기(216)(예를 들어, 리프레시 제어 회로)에 제공된다. 리프레시 제어기(216)에 제공된 리프레시 커맨드는 디바이스(200)가 메모리 뱅크들 중 하나 이상에 대해 리프레시 동작을 수행하게 할 수 있다.
리프레시 제어 회로(216)는 리프레시 로우 어드레스(RXADD)를 로우 디코더 회로(208)에 공급하고, 이는 리프레시 로우 어드레스에 의해 표시되는 하나 이상의 워드 라인들 WL을 리프레시할 수 있다. 리프레시 제어 회로(216)는 리프레시 신호에 기초하여 리프레시 동작의 타이밍을 제어할 수 있다. 리프레시 신호의 활성화에 응답하여, 리프레시 제어기 회로(216)는 하나 이상의 리프레시 어드레스들을 생성 및 제공할 수 있다.
리프레시 동작의 한 유형은 자동 리프레시 동작일 수 있다. 자동 리프레시 동작에 대한 응답으로, 디바이스(200)는 메모리 어레이(218)의 워드 라인 또는 워드 라인들의 그룹을 리프레시할 수 있고, 그 다음 자동 리프레시 동작에 응답하여 메모리의 다음 워드 라인 또는 워드 라인들의 그룹을 리프레시할 수 있다. 리프레시 제어 회로(216)는 메모리 어레이(218) 내의 워드 라인 또는 워드 라인들의 그룹을 표시하는 리프레시 어드레스로서 자동 리프레시 어드레스를 제공할 수 있다. 리프레시 제어 회로(216)는 시간 경과에 따라 자동 리프레시 동작이 메모리 어레이(218)의 모든 워드 라인들을 통해 순환할 수 있도록 리프레시 어드레스들의 시퀀스를 생성할 수 있다.
디바이스(200)는 메모리 어레이(218)에 기록되고 메모리 어레이(218)로부터 판독되는 데이터의 오류를 검출 및 정정하기 위한 오류 정정 회로(ECC)(234)를 포함할 수 있다. 메모리 어레이(218)는 패리티 정보를 저장하는 전용 영역을 포함할 수 있거나 디바이스(200)는 패리티 정보를 저장하기 위한 추가 어레이(도시되지 않음)를 포함할 수 있다. ECC(234)는 메모리 어레이(218)로부터 데이터 및 패리티 정보를 수신할 수 있다. ECC(234)가 데이터의 오류를 검출할 때, ECC(234)는 오류를 정정하고 정정된 데이터를 메모리 어레이(218)에 다시 재기록할 수 있다. ECC(234)는 커맨드 디코더(206)에 의해 제공되는 판독 및/또는 기록 커맨드에 응답하여 오류를 검출하고 정정할 수 있다. ECC(234)는 메모리 어레이(218)로부터 데이터를 주기적으로 검색하여 판독 및/또는 기록 커맨드와 무관하게 메모리 어레이의 오류를 검출 및 정정할 수 있다. 예를 들어, 커맨드 디코더(206)는 오류 정정 신호(ECS)를 ECC(234)에 주기적으로 발행할 수 있다. 위에서 설명된 자동 리프레시 동작과 유사하게, ECC(234)는 일련의 오류 정정 신호들에 걸쳐 메모리 어레이(218)의 모든 워드 라인들을 통해 순환할 수 있다.
모드 레지스터(232)는 디바이스(200)에 대한 다양한 모드들을 정의하기 위해 사용될 수 있다. 모드 레지스터(232)는 재프로그래밍되거나, 리셋되거나, 또는 디바이스(200)가 전력을 잃을 때까지 저장된 정보를 유지할 수 있다. 모드 레지스터(232)는 모드 레지스터 기록 커맨드를 통해 기록될 수 있다. 모드 레지스터(232)는 상이한 메모리 동작들 또는 구성들과 관련된 정보를 저장하기 위한 하나 이상의 레지스터들을 포함할 수 있다. 예를 들어, 모드 레지스터(232)는 버스트 길이, 버스트 유형, 레이턴시, 주파수 세트 포인트를 설정하고, 프로그래밍 가능한 종단 컴포넌트를 인에이블 하고, 특정 메모리 동작을 인에이블 하는 것 등에 사용될 수 있다. 모드 레지스터(232)는 또한 디바이스(200)에 대한 상태 정보를 제공하기 위해 판독될 수 있는 정보로 프로그래밍될 수 있다. 예를 들어, 모드 레지스터(232)는 준비 상태, 교정 상태, 뿐만 아니라 다른 상태 정보를 제공하기 위해 사용될 수 있다. 판독된 정보는 디바이스(200)의 회로부에 의해 프로그래밍될 수 있다. 모드 레지스터(232)는 모드 레지스터 판독 커맨드를 통해 판독될 수 있다. 모드 레지스터(232)를 판독하는 것은 디바이스(200)에 의해 제공될 동작 및 구성의 상태에 대한 정보를 허용한다.
모드 레지스터(232)는 패턴 매칭 회로부(230)에 의해 패턴 매칭 동작이 수행되는 동작 모드를 지정하는데 사용될 수 있다. 예를 들어, 특정 값이 모드 레지스터(232)에 기록되면, 패턴 매칭 동작은 메모리에 제공된 신호를 사용하여 패턴 매칭 회로부(230)에 의해 구현될 수 있고, 다른 특정 값이 모드 레지스터(232)에 기록될 때, 패턴 매칭 동작이 발생하지 않을 수 있다(예를 들어, 패턴 매칭 회로부(230)가 디스에이블될 수 있음). 일부 실시예에서 하나 이상의 패턴 매칭 커맨드들에 응답하여 패턴 매칭 회로부(230)에 의해 패턴 매칭 동작이 수행될 수 있다. 모드 레지스터(232)가 패턴 매칭 동작을 인에이블하도록 프로그래밍될 때, 모드 레지스터(232)는 패턴 매칭 회로부(230)를 인에이블하는 제어 신호 EN_PM를 제공할 수 있고, 이는 하나 이상의 레지스터들과 하나 이상의 비교기 회로들(도 2에는 도시되지 않음)를 포함할 수 있다. 패턴 매칭 회로부(230)가 모드 레지스터(232)로부터의 제어 신호 EN_PM에 의해 인에이블될 때, 패턴 매칭 회로부(230)는 커맨드 디코더(206)에 의해 제공되는 하나 이상의 패턴 매칭 커맨드들 PatMat에 응답할 수 있다. 하나 이상의 패턴 매칭 커맨드들에 응답하여, 패턴 매칭 회로부(230)는 레지스터에 패턴을 저장하고, 패턴이 메모리 어레이(218)에 저장된 데이터에 존재하는지 결정하기 위해 메모리 어레이(218)에 저장된 데이터에 대해 패턴 매칭 동작을 수행하고, 패턴 매칭 동작의 결과를 레지스터에 기록하고, 패턴 매칭 동작의 결과에 기초하여 어레이(218)의 데이터를 변경하고, 레지스터의 결과를 IO 회로(222)에 제공하고, 및/또는 알람 핀에 알람 신호 Alrt를 제공할 수 있다.
패턴 매칭 회로부(230)는 디바이스(200)의 통합 부분을 형성할 수 있다. 예를 들어, 패턴 매칭 회로부(230)는 메모리 어레이(218)와 동일한 반도체 다이에 형성될 수 있다. 일부 예에서, 패턴 매칭 회로부(230)는 메모리 어레이(218)와 동일한 인쇄 회로 기판 상에 있을 수 있다. 이러한 방식으로, 패턴 매칭 회로부는 프로세서 또는 호스트 디바이스보다 메모리 어레이에 더 가까울 수 있다. 예를 들어, 패턴 매칭 회로부(230)와 메모리 어레이(218) 사이의 레이턴시 또는 액세스 시간은 예를 들어 데이터가 메모리 외부의 프로세서나 호스트에 제공될 때 메모리 어레이(218)로부터 디바이스(200)의 출력 핀 또는 외부 단자로 데이터를 전달하기 위한 레이턴시 또는 액세스 시간보다 작을 것으로 예상될 수 있다.
일부 예들에서, 메모리 어레이(218)로부터의 데이터는 판독 커맨드 및/또는 내부 판독 커맨드에 응답하여 패턴 매칭 회로부(230)에 제공될 수 있다. "내부 판독"은 데이터가 메모리 어레이(218)에서 검색되지만 데이터는 디바이스(200)에 남아 있음을 의미한다. 즉, 데이터는 예를 들어 데이터 단자 DQ를 통해 메모리 외부로 송신되지 않는다. 예를 들어, 판독 비교 커맨드에 응답하여, 데이터가 메모리 어레이(218)로부터 패턴 매칭 회로부(230)로 제공될 수 있다. 일부 예들에서, 리프레시 동작은, 내부에 저장된 데이터를 리프레시하기 위해 워드 라인들을 활성화하는 것에 더하여, 패턴 매칭 동작들을 위해 데이터가 패턴 매칭 회로부(230)에 제공될 수 있다. 즉, 리프레시 동작 중에 워드 라인이 리프레시를 위해 활성화되면 디바이스(200)에 의해 데이터가 "내부적으로 판독"될 수 있다. 일부 예들에서, 에러 정정 동작 동안, ECC(234)에 제공되는 것에 더하여, 데이터는 패턴 매칭 동작들을 위해 패턴 매칭 회로부(230)에 제공될 수 있다. 일부 예들에서, 패턴 매칭 동작들을 위한 데이터는 리프레시 동작 및 오류 정정 동작들 모두에 응답하여 패턴 매칭 회로부(230)에 제공될 수 있다. 패턴 매칭 동작을 위한 데이터를 제공하는 방식은 커맨드 디코더(206)에 의해 제공되는 하나 이상의 패턴 매칭 커맨드에 의해 정의될 수 있다.
패턴 매칭 동작을 위한 데이터 또는 패턴의 소스는 커맨드 디코더(206)에 의해 제공되는 하나 이상의 패턴 매칭 커맨드에 의해 정의될 수 있다. 예를 들어, 패턴의 소스는 IO 회로(222), 메모리 어레이(218), 및/또는 제2 메모리 어레이(미도시)를 통해 데이터 단자들 DQ로부터 올 수 있다. 일부 예에서, 패턴 매칭 동작을 위한 데이터는 기록 비교 커맨드에 응답하여 IO 회로(222)를 통해 데이터 단자 DQ를 통해 수신될 수 있다. 기록 비교 동작 중에 데이터는 데이터 단자 DQ로부터 수신되고 패턴 매칭 동작을 수행하기 위해 패턴 매칭 회로부(230)에 제공되지만, 데이터는 메모리 어레이(218)에 기록되지 않는다.
일부 예에서, 모드 레지스터 커맨드, 패턴 매칭 커맨드 및/또는 커맨드 디코더(206)에 의해 제공되는 다른 커맨드는 장치(200) 외부의 메모리 제어기(도 2에 도시되지 않음, 도 4 참조)로부터 수신된 커맨드(예를 들어, 제어 신호)에 응답할 수 있다. 데이터는 메모리 제어기로부터 수신되고 그에 제공될 수 있다. 본 발명의 실시예에 따르면, 메모리 제어기에 의해 제공되는 데이터 및 커맨드는 메모리 제어기와 통신하는 처리 회로부에 의해 실행되는 머신 러닝 애플리케이션의 실행 가능한 명령어에 적어도 부분적으로 기초할 수 있다.
디바이스(200)의 전원 단자들에는 전원 전위들 VDD1, VDD2 및 VSS이 공급된다. 전원 전위들 VDD1, VDD2 및 VSS는 내부 전압 생성기 회로(224)에 공급된다. 내부 전압 생성기 회로(224)는 전원 단자들에 공급되는 전원 전위 VDD1, VDD2 및 VSS에 기초하여 다양한 내부 전위들 VPP, VOD, VARY 및 VPERI 등을 생성한다. 다양한 내부 전위들 및 전원 전위들이 디바이스(200)의 상이한 회로들에 대해 사용될 수 있지만, 내부 전위 VPP는 주로 로우 디코더(208)에서 사용되며, 내부 전위들 VOD 및 VARY는 메모리 어레이(218)에 포함된 감지 증폭기 SAMP에서 주로 사용되며, 내부 전위 VPERI는 많은 주변 회로 블록들에서 사용된다.
전원 단자들에는 전원 전위들 VDDQ 및 VSSQ이 또한 공급된다. 입력/출력 회로(222)에는 전원 전위들 VDDQ 및 VSSQ이 공급된다. 전원 단자들에 공급되는 전원 전위들 VDDQ, VSSQ은는 본 개시의 일 실시예에서 전원 단자들에 공급되는 전원 전위들 VDD, VSS와 동일한 전위일 수 있다. 전원 단자들에 공급되는 전원 전위들 VDDQ, VSSQ는 본 발명의 다른 실시예에서 전원 단자들에 공급되는 전원 전위들 VDD, VSS와 다른 전위일 수 있다. 전원 단자에 공급되는 전원 전위들 VDDQ, VSSQ는 입력/출력 회로(222)에 사용되어 입력/출력 회로(222)에서 생성되는 전원 노이즈가 다른 회로 블록으로 전파되지 않도록 한다.
반도체 디바이스(200)의 컴포넌트들(예를 들어, 커맨드 디코더(206), 모드 레지스터(232), 패턴 매칭 회로부(230))은 외부 단자들(예를 들어, C/A, DQ)에 액세스하지 않고 반도체 디바이스(200)의 다른 컴포넌트들과 정보를 송신 및/또는 수신할 수 있다. 일부 실시예에서, 컴포넌트들은 정보(예를 들어, PatMat 라인, EN_PM 라인, XADD 라인)를 송신 및/또는 수신하기 위한 전도성 트레이스에 의해 서로 결합될 수 있다. 반도체 디바이스(200)에서 외부 단자에 액세스하지 않고 반도체 디바이스(200)의 다른 컴포넌트와 통신할 수 있는 컴포넌트가 고려될 수 있고(예를 들어, 반도체 디바이스(200)가 메모리 디바이스인 경우 "메모리 상의" 또는 "메모리의") 및 반도체 디바이스(200)의 컴포넌트와 통신하기 위해 반도체 디바이스(200)의 외부 단자에 액세스해야 하는 다른 컴포넌트 또는 디바이스는 오프 및/또는 외부 반도체 디바이스(200)로 간주될 수 있다(예를 들어, 반도체 디바이스(200)가 메모리 디바이스인 경우 "오프 메모리").
도 3은 본 개시의 실시예에 따른 패턴 매칭 회로부(300)의 블록도이다. 일부 실시예에서, 패턴 매칭 회로부(300)는 도 2에 도시된 패턴 매칭 회로부(230)에 포함될 수 있다. 패턴 매칭 회로부(300)는 패턴 레지스터(302), 비교기(304), 및 결과 레지스터(306)를 포함할 수 있다.
패턴 매칭 회로부(300)는 제어 신호 EN_PM에 의해 인에이블될 수 있다. 일부 실시예에서, 제어 신호는 모드 레지스터(232)와 같은 모드 레지스터에 의해 제공될 수 있다. 패턴 매칭 회로부(300)는 제어 신호 EN_PM가 비활성화될 때 패턴 매칭 커맨드를 무시할 수 있다(예를 들어, 패턴 매칭 회로부(300)가 디스에이블될 수 있음). 패턴 매칭 회로부(300)는 하나 이상의 패턴 매칭 커맨드 PatMat를 수신할 수 있다. 일부 실시예에서, 패턴 매칭 커맨드 PatMat은 커맨드 디코더(206)와 같은 커맨드 디코더에 의해 제공될 수 있다. 패턴 매칭 회로부(300)는 패턴 레지스터(302) 및/또는 비교기(304)에 제공될 수 있는 데이터를 수신할 수 있다. 데이터는 메모리 어레이(218)와 같은 메모리 어레이 및/또는 IO 회로(222)와 같은 IO 회로로부터 제공될 수 있다.
패턴 레지스터(302)는 패턴 매칭 동작에 사용될 하나 이상의 패턴을 저장할 수 있다. 일부 실시예에서, 패턴 레지스터(302)는 다중 레지스터(308)를 포함할 수 있다. 각각의 레지스터(308)는 하나 이상의 패턴을 저장할 수 있다. 일부 실시예에서, 패턴 레지스터(302)는 다목적 레지스터(MPR)를 포함할 수 있다. 이들 실시예에서, 패턴은 MPR 기록 커맨드를 사용하여 패턴 레지스터(302)에 기록될 수 있다. 다른 실시예에서, 패턴 레지스터 기록 커맨드에 응답하여 패턴이 패턴 레지스터(302)에 기록될 수 있다.
비교기(304)는 패턴 레지스터(302) 및 데이터로부터 패턴 Pat을 수신할 수 있다. 비교기(304)는 데이터가 Pat을 포함하는지 여부를 결정하기 위해 패턴 매칭 동작을 수행할 수 있다. 일부 실시예에서, 비교기(304)는 예를 들어 패턴 레지스터(302)가 하나보다 많은 패턴을 포함할 때 다중 패턴들 Pat에 대한 패턴 매칭 동작을 수행할 수 있다. 다중 패턴들에 대한 패턴 매칭 동작들은 순차적으로 또는 병렬로 수행될 수 있다. 일부 실시예에서, 비교기(304)는 단일 유형의 패턴 매칭 동작을 수행하도록 하드 코딩될 수 있다. 다른 실시예에서, 비교기(304)는 특정 유형의 패턴 매칭 동작을 수행하도록 (예를 들어, 패턴 매칭 커맨드 PatMat를 통해) 프로그래밍될 수 있다. 패턴 매칭 동작의 유형에 따라 수행되는 비교 유형이 결정될 수 있다(예를 들어, Pat의 정확한 매치 찾기, Pat의 특정 백분율 내에서 매치 찾기, Pat이 벡터인 경우 데이터에서 벡터의 특정 거리 내에서 벡터 찾기). 패턴 매칭 동작의 결정에 기초하여, 비교기는 결과 Res를 생성할 수 있다. 일부 실시예에서, Res는 데이터에 Pat이 존재하는 횟수의 카운트 값, 데이터에서 Pat이 매치의 위치의 메모리 어드레스, 플래그, 및/또는 이들의 조합을 포함할 수 있다.
일부 실시예에서, 패턴 매칭 동작의 유형은 Res 및/또는 패턴 매칭 동작의 결과에 기초하여 패턴 매칭 회로부(300)에 의해 취해질 다른 동작으로서 생성된 결과의 유형을 정의할 수 있다. 예를 들어, 일부 실시예에서, 패턴 매칭 회로부(300)는 데이터가 Pat과 매칭되는 메모리 어레이의 콘텐츠를 삭제하거나 데이터가 Pat과 매칭되는 메모리 어레이에 미리 결정된 값을 기록할 수 있다.
일부 실시예에서, 패턴 매칭 커맨드 PatMat은 패턴 매칭 동작을 위해 데이터가 검색되는 소스(예를 들어, 메모리 어레이 및/또는 IO 라인)를 정의할 수 있다. 일부 실시예에서, 패턴 매칭 커맨드 PatMat은 판독 동작, 판독 비교 동작, 오류 정정 동작, 리프레시 동작을 통해 데이터가 검색되는 방식을 정의할 수 있다. 일부 실시예에서, 패턴 매칭 커맨드 PatMat은 패턴 매칭 동작의 수행 이전에 데이터를 검색하기 위해 수행되는 다수의 동작들을 정의할 수 있다. 예를 들어, PatMat은 데이터가 리프레시 동작에 응답하여 메모리 어레이로부터 수신될 것임을 나타낼 수 있다. 그러나, 리프레시 동작은 한 번에 하나의 워드라인만을 리프레시할 수 있지만, 매칭되는 패턴은 4개의 워드라인들에 해당하는 데이터를 포함할 수 있다. 따라서, PatMat은 패턴 매칭 회로부(300)가 패턴 매칭 동작을 수행하기 전에 4개의 리프레시 동작들을 기다릴 수 있음을 추가로 나타낼 수 있다. 일부 실시예에서, 패턴 매칭 회로부(300) 및/또는 패턴 매칭 회로부(300)의 비교기 회로(304)는 이전 동작에 의해 수신된 데이터를 저장하기 위한 버퍼(312)를 포함할 수 있다.
일부 실시예에서, 비교기(304)는 복수의 XOR 논리 회로들과 같은 비교기 로직을 포함할 수 있다. 논리 회로들의 수는 매칭될 패턴의 길이(예를 들어, 비트의 수)에 적어도 부분적으로 기초할 수 있다. 일부 실시예에서, 비교기(304)는 하나 이상의 콘텐츠 어드레스가능 메모리(CAM) 셀들을 포함할 수 있다. 다른 논리 회로들 또는 다른 회로 컴포넌트들(예를 들어, 동작 증폭기)가 일부 실시예에서 비교기(304)에 포함될 수 있다.
결과 레지스터(306)는 패턴 매칭 동작에 응답하여 비교기(304)에 의해 출력된 하나 이상의 결과 Res를 저장할 수 있다. 일부 실시예에서, 결과 레지스터(306)는 다중 레지스터들(310)을 포함할 수 있다. 각각의 레지스터(310)는 하나 이상의 결과들을 저장할 수 있다. 일부 실시예에서, 결과 레지스터(306)는 다목적 레지스터 MPR를 포함할 수 있다. 이들 실시예에서, 결과 레지스터(306)는 MPR 판독 커맨드를 사용하여 판독될 수 있다. 다른 실시예에서, 결과 레지스터 판독 커맨드에 응답하여 결과 레지스터(306)로부터 결과가 판독될 수 있다. 일부 실시예에서, 결과는 출력으로서 제공될 수 있다. 일부 실시예에서, 결과 레지스터(306)는 IO 회로(222)와 같은 IO 회로에 출력을 제공할 수 있다. 일부 실시예에서, 결과 레지스터(306)는 출력을 메모리 어레이에 제공할 수 있다. 일부 실시예에서, 결과 레지스터(306)는 출력으로서 알람 신호와 같은 신호를 생성할 수 있다. 일부 실시예에서 알람 신호는 알람 핀(도 2 참조)에 제공될 수 있다.
선택적으로, 일부 실시예에서, 비교기(304)는 결과 레지스터(306)에 추가하여 또는 그 대신에 출력을 제공할 수 있다. 이들 실시예에서, 결과 레지스터(306)는 선택적으로 생략될 수 있다.
도 4는 본 개시의 실시예들에 따른 에지 디바이스(400)의 블록도이다. 문맥상, 클라우드 컴퓨팅 시스템(401) 및 에지 디바이스(400)와 통신하는 센서(403)도 도시되어 있다. 일부 실시예에서, 에지 디바이스(400)는 IoT 시스템(100)의 에지 디바이스(104)를 구현하는 데 사용될 수 있다. 일부 실시예에서, 클라우드 컴퓨팅 시스템(401)은 클라우드 컴퓨팅 시스템(102)을 구현하는데 사용될 수 있다. 일부 실시예에서, 센서(403)는 센서(108)를 구현하는데 사용될 수 있다. 에지 디바이스(400)는 일부 실시예에서 컴퓨터 판독 가능 매체(402), ASIC(404), 및 메모리(406)를 포함할 수 있다.
컴퓨터 판독가능 매체(402)는 비일시적 컴퓨터 판독가능 매체를 포함하는 임의의 매체를 사용하여 구현될 수 있다. 예는 메모리, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 휘발성 또는 비휘발성 메모리, 하드 드라이브, 솔리드 스테이트 드라이브 또는 기타 스토리지를 포함한다. 단일 컴퓨터 판독 가능 매체(402)가 도 4에 도시되어 있지만, 다수의 매체들이 존재할 수 있다. 컴퓨터 판독가능 매체(402)는 일부 실시예에서 데이터(416)를 저장하는 데 사용될 수 있다. 데이터(416)는 클라우드 컴퓨팅 시스템(401), ASIC(404)에 의해 수행된 계산에 의해 생성된 센서(403), 및/또는 다른 데이터 소스로부터 수신된 데이터를 포함할 수 있다.
컴퓨터 판독가능 매체(402)는 소프트웨어 및/또는 펌웨어 컴포넌트를 구현하기 위해 실행 가능한 명령어(418)로 인코딩될 수 있다. 일부 실시예에서, 실행 가능한 명령어(418)는 드라이버를 구현하기 위한 명령어를 포함할 수 있다. 드라이버는 에지 디바이스(400)의 하나 이상의 컴포넌트(예를 들어, ASIC(404) 및/또는 메모리(406))와 상호작용하기 위해 에지 디바이스(400)의 운영 체제에 대한 명령어를 제공할 수 있다. 일부 실시예에서, 실행 가능한 명령어(418)는 패턴 매칭 애플리케이션을 구현하기 위한 명령어를 포함할 수 있고, 이는 메모리(406)의 패턴 매칭 능력을 활용할 수 있다.
일부 실시예에서, ASIC(404)는 메모리 제어기(408) 및 처리 회로부(410)를 포함할 수 있다. 처리 회로부(410)는 일부 실시예에서 컴퓨터 판독가능 매체(402)에 의해 제공되는 명령어에 응답하여 계산을 수행할 수 있다. 일부 실시예에서, 처리 회로부(410)는 클라우드 컴퓨팅 시스템(401), 센서(403), 및/또는 다른 컴퓨팅 디바이스로부터 정보를 송신 및 수신하도록 구성된 트랜시버 회로부를 포함할 수 있다. 일부 실시예에서, 처리 회로부(410)는 전통적인 중앙 처리 장치(CPU) 또는 다른 완전한 기능을 갖춘 프로세서보다 적은 컴퓨팅 능력을 가질 수 있지만, ASIC(404)는 CPU 또는 프로세서보다 더 작거나 및/또는 더 적은 전력을 요구할 수 있다. ASIC(404)가 도 4에 도시되어 있지만, 다른 처리 회로부가 다른 예에서 사용될 수 있고(예를 들어, 하나 이상의 제어기, 마이크로제어기, 필드 프로그래밍가능 게이트 어레이(FPGA) 회로), 이는 또한 에지 디바이스(400)가 작고, 저렴하고, 및/또는 저전력이 되도록 할 수 있다.
ASIC(404)는 일부 실시예에서 메모리 제어기(408)를 통해 메모리(406)로부터 데이터를 제공 및 수신할 수 있다. 메모리 제어기(408)는 데이터가 메모리(406)로부터 입력 및 출력되는 방식을 제어할 수 있다. 메모리 제어기(408)는 모드 레지스터 기록 커맨드, 판독 커맨드, 기록 커맨드, 및/또는 패턴 매칭 동작 커맨드와 같은 커맨드를 메모리(406)에 발행할 수 있다. 도 4에서 ASIC(404)와 통합된 것으로 도시되었지만, 다른 실시예에서, 메모리 제어기(408)는 ASIC(404) 및 메모리(406)와 통신하는 별도의 컴포넌트일 수 있다.
일부 실시예에서, 메모리(406)는 디바이스(200)의 적어도 일부를 포함할 수 있다. 메모리(406)는 메모리 셀 어레이(412)(예를 들어, 메모리 셀 어레이(218)) 및 패턴 매칭 회로부(414)(예를 들어, 패턴 매칭 회로부(230), 패턴 매칭 회로부(300))를 포함할 수 있다. 일부 실시예에서, 메모리(406)는 메모리 제어기(408)로부터 데이터(예를 들어, 데이터(416), ASIC(404)에 의해 생성된 데이터, 및/또는 센서(403)로부터 수신된 데이터) 및 메모리 커맨드를 수신할 수 있다. 메모리(406)는 메모리 셀 어레이(412)에 데이터를 저장할 수 있다. 일부 실시예에서, 메모리(406)는 메모리 제어기(408)로부터 패턴을 더 수신할 수 있다. 패턴은 일부 실시예에서 패턴 매칭 회로부(414)의 레지스터(예를 들어, 패턴 레지스터(302))에 저장될 수 있다. 일부 실시예에서, 패턴 매칭 회로부(414)는 다수의 패턴들을 저장할 수 있다. 메모리 제어기(408)에 의해 제공되는 패턴 매칭 커맨드에 응답하여, 패턴 매칭 회로부(414)는 패턴 및 메모리 셀 어레이(412)에 저장된 데이터에 대해 패턴 매칭 동작을 수행할 수 있다. 패턴 매칭의 결과는 메모리 제어기(408)에 제공될 수 있다. 일부 실시예에서, 결과는 ASIC(404) 및/또는 컴퓨터 판독가능 매체(402)의 처리 회로부(410)에 제공될 수 있다. 일부 실시예에서, 에지 디바이스(400)는 패턴 매칭의 결과에 기초하여 기능을 수행할 수 있다. 일부 실시예에서, 기능은 처리 회로부(410)에 의해 수행된 계산에 기초하여 수행될 수 있다. 처리 회로부(410)의 계산은 일부 실시예에서 결과 또는 실행 가능한 명령어(418)와 결과의 조합에 적어도 부분적으로 기초할 수 있다.
일부 실시예에서, 패턴 매칭 회로부(414)에 제공되는 패턴은 데이터(416), 처리 회로부(410)에 의해 수행되는 동작으로부터, 센서(403)에 의해 제공, 및/또는 클라우드 컴퓨팅 시스템(401)으로부터 제공될 수 있다. 일부 실시예에서, 패턴은 에지 디바이스(400)의 배치 이전에 패턴 매칭 회로부 및/또는 컴퓨터 판독가능 매체(402)의 하나 이상의 레지스터에 로딩될 수 있다. 배치에 의해, 이는 에지 디바이스(400)가 인에이블되고 IoT 시스템(예를 들어, IoT 시스템(100))의 하나 이상의 디바이스와 통신하는 것을 의미한다. 패턴은 배치 이전에 클라우드 컴퓨팅 시스템(401) 및/또는 도 4에 도시되지 않은 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(106))에 의해 제공될 수 있다. 컴퓨팅 디바이스는 에지 디바이스(400)에 패턴을 제공하기 위한 배치 이전에 에지 디바이스(400)에 무선으로 연결되거나 유선 연결을 가질 수 있다. 일부 실시예에서, 적어도 일부 데이터(416) 및/또는 실행 가능한 명령어(418)는 배치 전 및/또는 후에 클라우드 컴퓨팅 시스템(401) 및/또는 다른 컴퓨팅 디바이스로부터 에지 디바이스(400)로 제공될 수 있다.
일부 실시예에서, 패턴 매칭 회로부(414)에 제공된 하나 이상의 패턴은 특정 관심 값에 대응할 수 있다(예를 들어, 임계 상태의 표시, 클라우드 컴퓨팅 시스템(401)에 의한 계산에 필요한/원하는 데이터의 표시). 예를 들어, 패턴 매칭 회로부(414)에 저장된 패턴은 오류 또는 임계 상태를 나타내는 스트링에 대응할 수 있다. 일부 실시예에서, 메모리(406)는 패턴이 데이터에 존재하는지를 결정하고 결과를 반환하기 위해 메모리(406)에 제공된 데이터에 대해 패턴 매칭 동작을 수행할 수 있다. 결과가 패턴이 존재함을 나타내는 경우, 에지 디바이스(400)는 결과에 기초하여 기능을 수행할 수 있다.
예를 들어, 에지 디바이스(400)는 전기 자동차에 위치할 수 있다. 에지 디바이스(400)는 직접 또는 센서(403)를 통해 자동차의 제동 시스템으로부터 데이터를 수집하고 제동 데이터를 클라우드 컴퓨팅 시스템(401)에 전송할 수 있다. 제동 데이터에는 제동이 적용된 시간, 제동이 적용된 기간, 제동이 적용된 힘 및/또는 제동이 올바르게 적용되었는지 여부가 포함될 수 있다. 제동 데이터는 일부 실시예에서 데이터(416)로서 저장될 수 있다. 전기 자동차가 동작하는 동안 제동 데이터를 클라우드 컴퓨팅 시스템(401)으로 송신하는 것은 전기 자동차에 계산 압력을 가할 수 있고 및/또는 전기 자동차가 동작하는 동안 전기 자동차가 클라우드 컴퓨팅 시스템(401)에 안정적으로 연결되지 않으면 어려울 수 있다. 따라서, 일부 예들에서, 에지 디바이스(400)는 동작 동안 제동 데이터를 저장하고 전기 자동차가 충전 시스템에 결합될 때 제동 데이터를 클라우드 컴퓨팅 시스템(401)에 송신할 수 있다. 그러나 일부 경우에는 예를 들어 에지 디바이스(400)가 브레이크가 올바르게 적용되지 않았음을 나타내는 브레이크 데이터를 수집할 때 적어도 일부 데이터를 클라우드 컴퓨팅 시스템(401)에 즉시 송신(또는 송신을 시도)하는 것이 바람직할 수 있다.
본 개시의 실시예들에 따르면, 제동 시스템의 오류에 대응하는 패턴(예를 들어, 오류 패턴)은 패턴 매칭 회로부(414)의 패턴 레지스터에 저장될 수 있다. 제동 시스템으로부터 수집된 데이터(예를 들어, 데이터(416)로부터 및/또는 센서(403)로부터 직접)는 메모리 셀 어레이(412)에 제공될 수 있다. 패턴 매칭 회로부(414)는 메모리 셀 어레이(412)로부터의 데이터에 대해 패턴 매칭을 수행하여 오류 패턴이 존재하는지를 결정하고 결과를 반환할 수 있다. 결과가 오류 패턴이 존재하지 않음을 나타내는 경우, 에지 디바이스(400)는 클라우드 컴퓨팅 시스템(401)으로의 추후 송신을 위해 제동 시스템 데이터를 계속 수집하고 저장할 수 있다. 결과가 오류 패턴이 있음을 나타내는 경우, 에지 디바이스(400)는 결과에 응답하여 오류 패턴 및/또는 추가 제동 데이터를 포함하는 제동 데이터를 클라우드 컴퓨팅 시스템(401)에 송신하려고 시도할 수 있다. 일부 실시예에서, 결과는 알람 핀(예를 들어, 도 2에 도시된 알람 핀) 상의 활성 신호일 수 있다.
일부 애플리케이션에서는 특정 데이터만 클라우드 컴퓨팅 시스템(401)의 관심 대상일 수 있다. 위의 전기 자동차 예로 돌아가서, 클라우드 컴퓨팅 시스템(401)은 오류 패턴과 관련된 제동 데이터만 수신하기를 원할 수 있다. 이들 실시예에서, 에지 디바이스(400)는 패턴 매칭 회로부(414)가 오류 패턴이 존재함을 나타내는 제동 데이터만을 전송할 수 있다. 일부 실시예에서, 에지 디바이스(400)는 오류 패턴이 존재하지 않는 제동 데이터를 저장하지 않을 수 있다.
일부 실시예에서, 패턴 매칭 회로부(414)에 제공된 하나 이상의 패턴들은 머신 러닝 모델을 훈련한 결과일 수 있다. 머신 러닝 모델은 일부 실시예에서 클라우드 컴퓨팅 시스템(401)에 의해 훈련되었을 수 있다. 따라서, 머신 러닝 애플리케이션에 의해 요구되는 무거운 계산 작업은 클라우드 컴퓨팅 시스템(401)에 의해 수행될 수 있고, 더 적은 계산 능력을 필요로 할 수 있는 이차 머신 러닝 동작(예를 들어, 훈련 동안 식별된 패턴 검출)은 에지 디바이스(400)에 의해 수행될 수 있다.
예를 들어, 에지 디바이스(400)는 심장 모니터일 수 있고 및/또는 센서(403)는 심전도(ECG) 신호를 송신하는 심장 모니터일 수 있다. 에지 디바이스(400)에 의해 수신된 ECG 신호는 에지 디바이스(400) 및/또는 센서(403)에 의해 심장이 모니터링되고 있는 사용자의 심장 상태를 검출하기 위한 분석을 위해 클라우드 컴퓨팅 시스템(401)에 제공될 수 있다. 일부 예들에서, ECG 신호들은 에지 디바이스(400)에 의해 클라우드 컴퓨팅 시스템(401)에 지속적으로 송신될 수 있다. 그러나, 일부 심장 상태는 치명적일 수 있고(예를 들어, 심정지) 에지 디바이스(400)와 클라우드 컴퓨팅 시스템(401) 사이의 송신 지연은 허용되지 않을 수 있으며 에지 디바이스(400)가 이러한 중요한 이벤트를 국부적으로 검출하는 것이 바람직할 수 있다.
본 개시의 실시예에 따르면, 머신 러닝 애플리케이션은 머신 러닝 모델(예를 들어, 컨볼루션 신경망)의 훈련(예를 들어, 감독된 또는 비감독된)을 통해 심정지와 같은 중요한 이벤트를 나타내는 ECG 신호의 패턴을 결정할 수 있다. 이러한 패턴은 패턴 매칭 회로부(414)의 패턴 레지스터에 저장될 수 있다. 에지 디바이스(400)에 의해 수집된(예를 들어, 데이터(416)로부터 및/또는 센서(403)로부터 직접) ECG 신호는 메모리 셀 어레이(412)에 제공될 수 있다. 패턴 매칭 회로부(414)는 메모리 셀 어레이(412)로부터의 데이터에 대한 패턴 매칭을 수행하여 하나 이상의 임계 이벤트와 연관된 패턴들 중 하나 이상이 존재하는지를 결정하고 결과를 반환할 수 있다. 결과가 하나 이상의 중요한 이벤트 패턴이 존재하지 않음을 표시하는 경우, 에지 디바이스(400)는 ECG 신호를 계속 수집하여 클라우드 컴퓨팅 시스템(401)에 송신할 수 있다. 임계 이벤트 패턴이 하나 이상 존재하는 경우, 에지 디바이스(400)는 결과에 기초하여 기능을 수행할 수 있다. 예를 들어, 결과에 기초하여, 에지 디바이스(400)는 에지 디바이스(400)와 통합될 수 있고 및/또는 에지 디바이스(400)와 통신할 수 있는 청각적 알람(도시되지 않음)을 활성화할 수 있다(예를 들어, 알람(110)). 다른 예에서, 에지 디바이스(400)는 응급 요원에게 신호를 송신할 수 있다(예를 들어, 911에 전화, 간호사 스테이션에서 경보를 트리거링함). 다른 예에서, 에지 디바이스(400)는 에지 디바이스(400)와 통신하는 다른 디바이스(예를 들어, 제세동기, 주입 펌프)(도시되지 않음)를 활성화할 수 있다. 일부 실시예에서, 결과는 ECG 신호에서 어떤 패턴 또는 패턴들이 검출되었는지의 표시일 수 있다.
본 명세서에 제공된 예는 단지 예시를 위한 것이며 본 개시의 원리는 제공된 예에 제한되지 않는다.
도 5는 본 개시의 실시예에 따른 방법(500)의 흐름도이다. 일부 실시예에서, 방법(500)의 적어도 일부는 에지 디바이스(400), 패턴 매칭 회로부(300), 및/또는 장치(200)에 의해 수행될 수 있다. 방법(500)은 일부 실시예에서 도 1 및 도 4를 참조하여 제공된 예를 참조하여 수행된 방법을 요약할 수 있다.
블록(502)에서 "패턴 수신"이 수행될 수 있다. 패턴은 에지 디바이스(예를 들어, 에지 디바이스(400))에 의해 수신될 수 있다. 패턴은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(106)) 및/또는 클라우드 컴퓨팅 시스템(예를 들어, 클라우드 컴퓨팅 시스템(102), 클라우드 컴퓨팅 시스템(401))으로부터 수신될 수 있다. 패턴은 일부 실시예에서 관심 값 및/또는 임계 상태 또는 이벤트에 대응할 수 있다. 일부 실시예에서, 다중 패턴들이 수신될 수 있다. 일부 실시예에서, 패턴은 머신 러닝 애플리케이션 및/또는 빅 데이터 분석 애플리케이션에 의해 수행된 계산의 결과일 수 있다. 일부 실시예에서, 머신 러닝 애플리케이션 및/또는 빅 데이터 분석 애플리케이션은 클라우드 컴퓨팅 시스템에 의해 실행될 수 있다. 블록(504)에서 "패턴 레지스터에 패턴 저장"이 수행될 수 있다. 일부 실시예에서, 패턴 레지스터는 메모리(406)와 같은 에지 디바이스의 메모리에 포함될 수 있다. 일부 실시예에서, 다중 패턴들이 메모리에 저장될 수 있다. 일부 실시예에서, 다중 패턴들이 단일 패턴 레지스터에 저장될 수 있다. 다른 실시예에서, 패턴들은 메모리의 다중 패턴 레지스터들에 저장될 수 있다.
블록(506)에서 "데이터 수신"이 수행될 수 있다. 데이터는 에지 디바이스에 의해 수신될 수 있다. 에지 디바이스는 데이터를 직접 수집하고 및/또는 센서(예를 들어, 센서(403), 센서(108))로부터 데이터를 수신할 수 있다. 블록(508)에서 "데이터 저장"이 수행될 수 있다. 데이터는 일부 실시예에서 메모리 셀 어레이(예를 들어, 메모리 셀 어레이(412), 메모리 셀 어레이(218))에 저장될 수 있다. 일부 실시예에서, 데이터는 컴퓨터 판독가능 매체(예를 들어, 컴퓨터 판독가능 매체(402))에 추가로 저장될 수 있다.
블록(510)에서 "패턴 매칭 동작을 수행하는 것"이 수행될 수 있다. 패턴 매칭 동작은 에지 디바이스의 메모리의 패턴 매칭 회로부(예를 들어, 패턴 매칭 회로부(230), 패턴 매칭 회로부(300), 패턴 매칭 회로부(414))에 의해 수행될 수 있다. 일부 실시예에서, 패턴 매칭 동작은 패턴 매칭 커맨드에 응답하여 수행될 수 있다. 일부 실시예에서, 패턴 매칭 커맨드는 메모리 제어기(예를 들어, 메모리 제어기(408))에 의해 메모리에 제공될 수 있다. 패턴 매칭 동작은 결과를 생성할 수 있다.
블록(512)에서 "결과 제공"이 수행될 수 있다. 언급한 바와 같이, 결과는 패턴 매칭 동작의 결과일 수 있다. 일부 실시예에서, 결과는 에지 디바이스의 메모리로부터 ASIC(예를 들어, ASIC(404)) 또는 에지 디바이스의 다른 처리 회로부로 제공될 수 있다. 일부 실시예에서, 결과는 패턴 매칭 회로부의 결과 레지스터(예를 들어, 결과 레지스터(306))로부터 제공될 수 있다. 일부 실시예에서, 결과는 패턴 매칭 회로부의 비교기 회로(예를 들어, 비교기 회로(304))로부터 직접 제공될 수 있다. 일부 실시예에서, 결과는 패턴이 데이터에 존재하거나 존재하지 않는다는 표시(예를 들어, 활성 또는 비활성 알람 신호)를 제공할 수 있다. 일부 실시예에서, 결과는 데이터에 존재하는 패턴(존재하는 경우)의 표시를 제공할 수 있다. 결과는 다른 실시예에서 다른 유형 또는 유형들의 조합일 수 있다(예를 들어, 패턴이 데이터에 존재하는 횟수).
블록(514)에서 "결과에 기초하여 기능을 수행하는 것"이 수행될 수 있다. 일부 실시예에서, 기능은 에지 디바이스의 처리 회로부(예를 들어, 처리 회로부(410))에 의해 수행되는 계산에 적어도 부분적으로 기초할 수 있다. 일부 실시예에서, 기능은 에지 디바이스로부터 클라우드 컴퓨팅 시스템으로 데이터를 송신하는 것일 수 있다. 일부 실시예에서, 기능은 에지 디바이스의 컴퓨터 판독가능 매체로부터 데이터를 삭제하는 것일 수 있다. 일부 실시예에서, 기능은 에지 디바이스와 통신하는 경보 또는 다른 디바이스를 활성화하는 것일 수 있다. 일부 실시예에서, 다른 기능이 수행될 수 있다(예를 들어, 금융 거래의 실행 거부). 일부 실시예에서, 다수의 기능들이 결과에 기초하여 수행될 수 있다(예를 들어, 금융 거래의 실행을 거부하고 거래의 경고를 계정 관리자에게 전송).
일부 실시예에서, 에지 디바이스는 데이터를 클라우드 컴퓨팅 시스템에 제공하기 전에 데이터를 처리하거나 재포맷할 수 있다. 데이터를 처리하거나 재포맷하면 송신에 필요한 데이터의 양이 줄어들거나 및/또는 클라우드 컴퓨팅 시스템에서 처리할 수 있는 더 나은 포멧으로 데이터를 넣을 수 있다(예를 들어, 머신 러닝 모델을 위한 다중 피쳐 벡터들을 포함하는 매트릭스). 예를 들어, 블록들(502 및 504)에서 수신되고 저장된 패턴은 에지 디바이스가 블록(510)의 패턴 매칭 동작 동안 블록(506)에서 수신된 데이터의 중복 데이터를 인식하도록 할 수 있다. 결과가 블록(512)에서 데이터가 중복임을 나타내면, 에지 디바이스는 블록(514)에서 중복 데이터를 삭제할 수 있다. 다른 예에서, 블록들(502 및 504)에서 다중 패턴들이 수신되고 저장될 수 있다. 블록(510)에서 패턴 매칭 동작 동안, 에지 디바이스는 블록(512)에서 제공된 결과에 기초하여 블록(506)에서 수신된 데이터의 일부가 속해 있는 피쳐 매트릭스의 벡터를 결정할 수 있다. 블록(514)에서, 에지 디바이스는 데이터 또는 데이터의 일부를 피쳐 매트릭스의 적절한 벡터에 넣을 수 있다. 적절한 컬럼에 배치된 데이터를 갖는 피쳐 매트릭스는 클라우드 컴퓨팅 시스템의 머신 러닝 모델에 입력하기 위해 클라우드 컴퓨팅 시스템에 제공될 수 있다.
본 명세서에 개시된 장치, 시스템 및 방법은 온-메모리 패턴 매칭 능력을 갖는 메모리를 포함하는 에지 디바이스가 작고, 저렴하고 및/또는 낮은 전력을 유지하면서 더 복잡한 계산 작업을 수행하도록 할 수 있다. 본 개시의 원리에 따른 에지 디바이스는 일부 애플리케이션에서 IoT 시스템에서 클라우드 컴퓨팅 시스템으로 송신되는 데이터의 양 및/또는 데이터가 송신되는 빈도를 감소시킬 수 있다. 본 개시의 원리에 따른 에지 디바이스는 일부 애플리케이션에서 클라우드 컴퓨팅 시스템과 통신하지 않고 국부적으로 기능을 수행할 수 있다.
물론 본 명세서에 기술된 예시, 실시예 또는 프로세스 중 임의의 하나는 하나 이상의 다른 예시, 실시예 및/또는 프로세스와 결합될 수 있고 또는 본 시스템, 디바이스 및 방법에 따라 분리된 디바이스들 또는 디바이스 부분들 사이에서 분리 및/또는 수행될 수 있다는 것을 이해할 수 있다.
마지막으로, 상기 논의는 단지 예시를 위한 것이며 첨부된 청구범위를 임의의 특정 실시예 또는 실시예의 그룹으로 제한하는 것으로 해석되어서는 안 된다. 따라서, 본 개시의 다양한 실시예가 특히 상세하게 설명되었지만, 또한, 이하의 청구범위에 기재된 바와 같이 본 개시의 보다 광범위하고 의도된 사상 및 범위를 벗어나지 않으면서 당업자에 의해 수많은 수정 및 대안적인 실시예가 고안될 수 있음을 이해해야 한다. 따라서, 명세서 및 도면은 예시적인 방식으로 간주되어야 하며 첨부된 청구범위의 범위를 제한하도록 의도되지 않는다.

Claims (23)

  1. 장치에 있어서,
    에지 디바이스(edge device)에 의해 수집된 데이터 및 실행 가능한 명령어를 저장하도록 구성된 컴퓨터 판독가능 매체(computer readable medium);
    상기 실행 가능한 명령어를 실행하도록 구성된 처리 회로부(processing circuitry); 및
    메모리로서:
    데이터 및 패턴의 적어도 일부에 대해 패턴 매칭 동작(pattern matching operation)을 수행하고; 및
    상기 패턴 매칭 동작의 결과를 상기 처리 회로부에 송신하도록 구성된, 패턴 매칭 회로부를 포함하는 상기 메모리를 포함하는, 장치.
  2. 제1항에 있어서, 상기 데이터의 적어도 일부 및 커맨드를 제공하여 상기 패턴 매칭 동작을 개시하도록 구성된 메모리 제어기를 더 포함하고, 상기 패턴 매칭 동작은 상기 커맨드에 응답하여 수행되는, 장치.
  3. 제1항에 있어서, 상기 패턴 매칭 회로부는 상기 패턴을 저장하도록 구성된 제1 레지스터(register), 상기 패턴 매칭 동작을 수행하도록 구성된 비교기 회로, 및 상기 결과를 저장하도록 구성된 제2 레지스터를 포함하는, 장치.
  4. 제3항에 있어서, 상기 메모리는 상기 데이터의 상기 일부를 저장하고 상기 데이터의 상기 일부를 상기 비교기 회로에 제공하도록 구성된 메모리 어레이를 포함하는, 장치.
  5. 제1항에 있어서, 상기 처리 회로부에 결합되고 상기 데이터를 수집하도록 구성된 센서를 더 포함하는, 장치.
  6. 제1항에 있어서, 상기 데이터 또는 상기 결과, 또는 둘 모두를 클라우드 컴퓨팅 시스템(cloud computing system)으로 송신하도록 구성된 트랜시버(transceiver)를 더 포함하는, 장치.
  7. 제1항에 있어서, 상기 결과는 상기 패턴이 상기 데이터의 상기 일부에 존재하는 경우 활성이고 상기 패턴이 상기 데이터의 상기 일부에 존재하지 않는 경우 비활성인 알람 신호를 포함하는, 장치.
  8. 제1항에 있어서, 상기 패턴은 복수의 패턴들을 포함하고, 상기 결과는 상기 복수의 패턴들 중 어느 것이 상기 데이터의 상기 일부에 존재하는지에 대한 표시를 포함하는, 장치.
  9. 제1항에 있어서, 상기 처리 회로부는 상기 패턴 매칭 동작의 상기 결과를 수신하는 것에 적어도 부분적으로 기초하여 상기 컴퓨터 판독가능 메모리로부터 상기 데이터의 상기 일부를 삭제하도록 구성되는, 장치.
  10. 제1항에 있어서, 상기 처리 회로부는 상기 패턴 매칭 동작의 상기 결과를 수신하는 것에 적어도 부분적으로 기초하여 상기 데이터가 클라우드 컴퓨팅 시스템으로 송신되는 빈도를 변경하도록 구성되는, 장치.
  11. 장치에 있어서,
    적어도 하나의 패턴을 생성하고 적어도 하나의 패턴 매칭 동작을 수행하기 위해 에지 디바이스에 상기 적어도 하나의 패턴을 제공하고, 및 상기 에지 디바이스에서 데이터를 수신하도록 구성된 컴퓨팅 디바이스를 포함하고, 상기 데이터의 적어도 일부는 상기 적어도 하나의 패턴 매칭 동작에 적어도 부분적으로 응답하여 수신되는, 장치.
  12. 제11항에 있어서, 상기 컴퓨팅 디바이스는 머신 러닝 모델(machine learning model)을 훈련하도록 구성되고, 상기 적어도 하나의 패턴은 상기 머신 러닝 모델에 적어도 부분적으로 기초하여 생성되는, 장치.
  13. 제11항에 있어서, 상기 컴퓨팅 디바이스는 적어도 하나의 명령어를 상기 에지 디바이스에 제공하도록 더 구성되고, 상기 적어도 하나의 명령어는 상기 적어도 하나의 패턴 매칭 동작의 결과에 적어도 부분적으로 기초하여 상기 에지 디바이스에 의해 수행될 기능을 표시하는, 장치.
  14. 제11항에 있어서, 상기 컴퓨팅 디바이스는 상기 적어도 하나의 패턴을 복수의 에지 디바이스들에 제공하고 상기 복수의 에지 디바이스들로부터 데이터를 수신하도록 더 구성되고, 상기 데이터의 적어도 일부는 상기 복수의 에지 디바이스들에 의해 수행된 패턴 매칭 동작들에 적어도 부분적으로 응답하여 수신되는, 장치.
  15. 방법에 있어서,
    에지 디바이스의 메모리에 패턴을 저장하는 단계;
    상기 에지 디바이스의 상기 메모리에 데이터를 저장하는 단계; 및
    상기 메모리 상의 패턴 매칭 회로부로 상기 패턴 및 상기 데이터의 적어도 일부에 대해 패턴 매칭 동작을 수행하는 단계를 포함하는, 방법.
  16. 제15항에 있어서, 상기 패턴 매칭 동작의 결과를 상기 에지 디바이스의 처리 회로부에 제공하는 단계를 더 포함하고, 상기 처리 회로부는 상기 결과에 적어도 부분적으로 기초하여 기능을 수행하도록 구성되는, 방법.
  17. 제15항에 있어서, 상기 패턴은 클라우드 컴퓨팅 시스템으로부터 상기 에지 디바이스에 의해 수신되는, 방법.
  18. 제15항에 있어서, 상기 패턴은 상기 패턴 매칭 회로부의 레지스터에 저장되는, 방법.
  19. 제15항에 있어서, 상기 데이터는 상기 에지 디바이스의 컴퓨터 판독가능 매체에 저장되는, 방법.
  20. 제15항에 있어서, 상기 패턴 매칭 동작의 결과에 적어도 부분적으로 기초하여 상기 에지 디바이스로부터 클라우드 컴퓨팅 시스템으로 상기 데이터를 송신하는 단계를 더 포함하는, 방법.
  21. 제15항에 있어서, 상기 패턴 매칭 동작의 결과에 적어도 부분적으로 기초하여 상기 에지 디바이스의 컴퓨터 판독가능 매체 또는 상기 메모리 중 적어도 하나로부터 데이터를 삭제하는 단계를 더 포함하는, 방법.
  22. 제15항에 있어서, 상기 패턴 매칭 동작의 결과에 적어도 부분적으로 기초하여 상기 에지 디바이스와 통신하는 알람 또는 다른 디바이스를 활성화하는 단계를 더 포함하는, 방법.
  23. 제15항에 있어서, 상기 데이터는 상기 에지 디바이스와 통신하는 센서로부터 수신되는, 방법.
KR1020227038572A 2020-04-15 2021-04-13 에지 디바이스에서 추론 처리를 위한 장치 및 방법 KR20220164768A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/849,819 2020-04-15
US16/849,819 US11676052B2 (en) 2020-04-15 2020-04-15 Apparatuses and methods for inference processing on edge devices
PCT/US2021/027013 WO2021211532A1 (en) 2020-04-15 2021-04-13 Apparatuses and methods for inference processing on edge devices

Publications (1)

Publication Number Publication Date
KR20220164768A true KR20220164768A (ko) 2022-12-13

Family

ID=78081959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227038572A KR20220164768A (ko) 2020-04-15 2021-04-13 에지 디바이스에서 추론 처리를 위한 장치 및 방법

Country Status (5)

Country Link
US (1) US11676052B2 (ko)
EP (1) EP4136529A4 (ko)
KR (1) KR20220164768A (ko)
CN (1) CN115516467A (ko)
WO (1) WO2021211532A1 (ko)

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW498206B (en) 1998-07-28 2002-08-11 Silicon Integrated Sys Corp Method and device for matching data stream with a fixed pattern
US7134143B2 (en) * 2003-02-04 2006-11-07 Stellenberg Gerald S Method and apparatus for data packet pattern matching
US7613775B2 (en) * 2003-11-25 2009-11-03 Freescale Semiconductor, Inc. Network message filtering using hashing and pattern matching
US9392005B2 (en) * 2010-05-27 2016-07-12 Samsung Sds Co., Ltd. System and method for matching pattern
US20120150887A1 (en) * 2010-12-08 2012-06-14 Clark Christopher F Pattern matching
US9172591B2 (en) * 2012-02-06 2015-10-27 Deepfield Networks System and method for management of cloud-based systems
US9934856B2 (en) * 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US10824952B2 (en) * 2014-09-22 2020-11-03 International Business Machines Corporation Reconfigurable array processor for pattern matching
US20160170892A1 (en) * 2014-12-11 2016-06-16 HGST Netherlands B.V. Expression pattern matching in a storage subsystem
EP3342137B1 (en) 2015-08-27 2021-06-02 Foghorn Systems, Inc. Edge intelligence platform, and internet of things sensor streams system
US10497014B2 (en) * 2016-04-22 2019-12-03 Inreality Limited Retail store digital shelf for recommending products utilizing facial recognition in a peer to peer network
US10868743B2 (en) * 2016-06-01 2020-12-15 Intel Corporation System and method for providing fast platform telemetry data
US10986183B2 (en) * 2018-05-02 2021-04-20 Hewlett Packard Enterprise Development Lp Data management in a network environment
KR102042690B1 (ko) 2018-05-30 2019-11-27 (주)유비벨록스모바일 Iot 기기 자동 제어를 위한 엣지-클라우드 시스템
US11315024B2 (en) 2018-06-25 2022-04-26 Kyndryl, Inc. Cognitive computing systems and services utilizing internet of things environment
US10715391B2 (en) * 2018-12-03 2020-07-14 At&T Intellectual Property I, L.P. Cloud zone network analytics platform
US20200272899A1 (en) * 2019-02-22 2020-08-27 Ubotica Technologies Limited Systems and Methods for Deploying and Updating Neural Networks at the Edge of a Network
US11082525B2 (en) * 2019-05-17 2021-08-03 Intel Corporation Technologies for managing sensor and telemetry data on an edge networking platform
US11663124B2 (en) * 2020-02-25 2023-05-30 Micron Technology, Inc. Apparatuses and methods for interfacing on-memory pattern matching
US11442940B2 (en) * 2020-03-03 2022-09-13 Micron Technology, Inc. Apparatuses and methods for on-memory pattern matching
EP3879498A1 (en) * 2020-03-09 2021-09-15 Siemens Healthcare GmbH Method of rendering a volume and a surface embedded in the volume
US11410713B2 (en) * 2020-04-06 2022-08-09 Micron Technology, Inc. Apparatuses and methods for detecting illegal commands and command sequences
US11191013B1 (en) * 2021-06-08 2021-11-30 Peltbeam Inc. Edge device, central cloud server, and method for handling service for multiple service providers

Also Published As

Publication number Publication date
WO2021211532A1 (en) 2021-10-21
EP4136529A4 (en) 2024-05-15
US20210326732A1 (en) 2021-10-21
EP4136529A1 (en) 2023-02-22
CN115516467A (zh) 2022-12-23
US11676052B2 (en) 2023-06-13

Similar Documents

Publication Publication Date Title
US11133050B2 (en) Memory device, memory system, and method for refreshing memory device
CN101529396B (zh) 存储器设备以及更新调整方法
US11829366B2 (en) Apparatuses and methods for on-memory pattern matching
CN103680594A (zh) 降低写失败的存储器件、包括该存储器件的系统及其方法
US11410713B2 (en) Apparatuses and methods for detecting illegal commands and command sequences
US20230186619A1 (en) Apparatuses, systems, and methods for machine learning using on-memory pattern matching
US11664083B2 (en) Memory, memory system having the same and operating method thereof
US20230178140A1 (en) Memory devices and methods for controlling row hammer
KR20220141879A (ko) 온 메모리 패턴 매칭을 인터페이싱하기 위한 장치 및 방법
US11676052B2 (en) Apparatuses and methods for inference processing on edge devices
US11972788B2 (en) Apparatuses, systems, and methods for controller directed targeted refresh operations based on sampling command
US20220365889A1 (en) Memory with a communications bus for device-to-controller communication, and associated systems, devices, and methods
JP2020184338A (ja) 高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステム