KR20220148259A - 온 메모리 패턴 매칭을 위한 장치들 및 방법들 - Google Patents

온 메모리 패턴 매칭을 위한 장치들 및 방법들 Download PDF

Info

Publication number
KR20220148259A
KR20220148259A KR1020227033968A KR20227033968A KR20220148259A KR 20220148259 A KR20220148259 A KR 20220148259A KR 1020227033968 A KR1020227033968 A KR 1020227033968A KR 20227033968 A KR20227033968 A KR 20227033968A KR 20220148259 A KR20220148259 A KR 20220148259A
Authority
KR
South Korea
Prior art keywords
pattern
register
memory
data
result
Prior art date
Application number
KR1020227033968A
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 KR20220148259A publication Critical patent/KR20220148259A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Dram (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)

Abstract

본 개시내용의 실시예들은 메모리 디바이스 내에서 패턴 매칭 동작들을 수행할 수 있는 장치들, 시스템들, 방법들, 및 메모리들에 대해 도시된다. 패턴 매칭 동작들은 레지스터에 저장된 패턴에 기초하여 메모리 내에 저장된 데이터에 대해 수행될 수 있다. 패턴 매칭 동작의 결과는 메모리에 의해 제공될 수 있다. 패턴 매칭 동작이 수행된 데이터는 패턴 매칭 동작 동안 메모리로부터 출력되지 않을 수 있다.

Description

온 메모리 패턴 매칭을 위한 장치들 및 방법들
본 개시는 일반적으로 동적 랜덤 액세스 메모리(DRAM)와 같은 휘발성 메모리를 포함하는 메모리 디바이스들에 관한 것이다. 데이터는 DRAM의 개별 메모리 셀들에 저장될 수 있다. 메모리 셀들은 행들(rows) 및 열들(columns)의 어레이로 구성될 수 있다. 행의 각각의 메모리 셀은 워드 라인에 결합될 수 있고 열의 각각의 메모리 셀은 비트 라인에 결합될 수 있다. 따라서, 모든 메모리 셀은 워드 라인 및 비트 라인에 결합된다. 데이터는 마이크로프로세서, 그래픽 처리 유닛, 또는 다른 회로부에 의해 다양한 계산을 수행하기 위해 DRAM에 제공되고 그로부터 검색될 수 있다.
인공 지능 및 빅 데이터 분석과 같은 증가하는 컴퓨터 사용 애플리케이션들은 패턴 매칭 동작들을 필요로 하고 있다. 패턴들에 대해 검색될 데이터는 데이터 저장 디바이스(예를 들어, 하드 드라이브)로부터 DRAM으로 그리고 그런 다음 패턴 매칭 동작들이 수행되는 프로세서로 제공된다.
본 명세서에 설명된 장치들, 시스템들 및 방법들은 패턴 매칭이 메모리에 의해 수행되게 할 수 있다. 이것은 데이터가 메모리 외부에서 다른 처리 회로부에 제공되지 않고 분석될 수 있게 한다. 일부 실시예들에서, 패턴 매칭 동작들의 결과들만이 메모리에 의해 제공될 수 있다. 일부 애플리케이션들에서, 이는 패턴 매칭 동작들에 대해 이용되는 시간을 감소시킬 수 있다. 예를 들어, 메모리 어레이로부터 데이터를 특정 패턴과 비교할 수 있는 프로세서(예를 들어, CPU)로 다양한 데이터를 발송하는 대신, 메모리 디바이스에는 패턴 매칭 능력이 제공될 수 있다. 그런 다음, 프로세서는 패턴 매칭 동작 모드를 요청하고, 메모리 디바이스로부터, 메모리 어레이에서의 특정 패턴의 존재 또는 부재에 관한 정보를 수신할 수 있다.
본 개시의 적어도 하나의 예에 따르면, 장치는 반도체 다이 상에 데이터를 저장하도록 구성된 메모리 어레이, 반도체 다이 상에 있고 비트들의 스트링의 패턴을 저장하도록 구성된 제1 레지스터, 및 반도체 다이 상에 있거나 메모리 어레이 아래에 위치되는 비교기 회로를 포함하고 상기 비교기 회로는 비트들의 스트링의 패턴의 표시 및 데이터를 수신하고, 데이터가 비트들의 스트링의 패턴을 포함하는지 여부를 결정하고, 및 데이터가 비트들의 스트링의 패턴을 포함하는지 여부의 결정에 기초하여 결과를 생성하도록 구성된다.
본 개시의 적어도 하나의 예에 따르면, 방법은 반도체 다이 상의 제1 레지스터에 제1 패턴을 저장하는 단계 - 제1 패턴은 비트들의 스트링을 포함함 -, 반도체 다이 상의 비교기 회로에서 데이터 및 제1 패턴의 표시를 수신하는 단계, 데이터가 제1 패턴을 포함하는지 여부를 비교기 회로로 결정하는 단계, 결정에 기초하여 제1 결과를 생성하는 단계, 및 제1 결과의 표시를 메모리 상의 제2 레지스터에 저장하는 단계를 포함할 수 있다.
본 개시의 적어도 하나의 예에 따르면, 메모리는 메모리 셀들, 메모리의 외부 단자로부터 패턴을 나타내는 데이터를 수신하도록 구성된 다목적 레지스터, 메모리 셀들의 콘텐츠들을 패턴을 나타내는 데이터와 비교하고 패턴 표시를 제공하도록 구성된 비교기 회로부, 및 패턴 표시를 저장하고 패턴 표시를 메모리의 다른 외부 단자에 액세스 가능하게 하도록 구성된 결과 레지스터를 포함할 수 있다.
도 1은 본 개시의 실시예들에 따른 반도체 디바이스의 블록도이다.
도 2는 본 개시의 실시예들에 따른 패턴 매칭 회로부의 블록도이다.
도 3은 본 개시의 실시예들에 따른 시스템의 블록도이다.
도 4는 본 개시의 실시예들에 따른 방법의 흐름도이다.
도 5는 본 개시의 실시예들에 따른 방법의 흐름도이다.
특정 실시예들에 대한 다음의 설명은 본질적으로 단지 예시적일 뿐이며, 본 개시 또는 그 애플리케이션들 또는 사용들의 범위를 제한하도록 결코 의도되지 않는다. 본 시스템들 및 방법들의 실시예들의 다음의 상세한 설명에서, 본 명세서의 일부를 형성하고 설명된 시스템들 및 방법들이 실시될 수 있는 특정 실시예들을 예시로서 도시하는 첨부 도면들을 참조한다. 이들 실시예들은 당업자가 현재 개시된 시스템들 및 방법들을 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예들이 이용될 수 있고, 본 개시의 사상 및 범위를 벗어나지 않고 구조적 및 논리적 변경들이 이루어질 수 있다는 것이 이해되어야 한다. 또한, 명확성을 위해, 특정 특징들에 대한 상세한 설명은 본 개시내용의 실시예들의 설명을 모호하게 하지 않기 위해 당업자에게 명백할 때 논의되지 않을 것이다. 따라서, 다음의 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 본 개시의 범위는 첨부된 청구항들에 의해서만 정의된다.
동적 랜덤 액세스 메모리(DRAM)는 종종 마이크로프로세서, 그래픽 처리 유닛, 애플리케이션 특정 집적 회로, 및/또는 기타 회로부(본 명세서에서 집합적으로 처리 회로부라고 지칭됨)에 의해 수행되는 계산들을 수행하기 위한 또는 그로부터 생성된 데이터를 저장하는 데 사용된다. 데이터는 처리 회로부 및/또는 장기 데이터 저장 디바이스(예를 들어, 비휘발성 메모리)로부터 DRAM으로 및 그로부터 전송(transfer)될 수 있다. 예를 들어, 데이터는 하드 드라이브로부터 검색되어 DRAM에 제공될 수 있다. 그런 다음, 데이터는 처리 회로부에 의해 수행되는 계산을 위해 필요에 따라 DRAM으로부터 처리 회로부에 제공될 수 있다. 일부 디바이스들에서, DRAM으로 그리고 그로부터 데이터를 제공하는 것은 메모리 제어기에 의해 제어될 수 있다. 메모리 제어기는 처리 회로부 및/또는 DRAM 및 처리 회로부와 통신하는 별도의 컴포넌트에 통합될 수 있다.
인공 지능 및 빅 데이터 분석과 같은 증가하는 컴퓨터 사용 애플리케이션들은 패턴 매칭 동작들을 필요로 하고 있다. 예를 들어, 게놈 정보의 대규모 데이터베이스는 특정 서열에 대해 검색될 수 있다. 다른 예에서, 신경망은 이미지 내의 객체를 식별하기 위해 이미지 데이터에서 특정 특징들을 검색하도록 트레이닝될 수 있다. 현재, 패턴에 대해 검색될 데이터는 장기 데이터 저장 디바이스에서 DRAM으로 패턴 매칭 동작들이 수행되는 처리 회로부에 제공된다. 그러나, 컴포넌트들 사이에서 데이터를 전송하는 것은 일부 애플리케이션들에서 패턴 매칭 계산들을 느리게 할 수 있다. 따라서, 컴포넌트들 사이에서 전송되는 데이터를 감소시키는 것이 바람직할 것이다.
본 개시의 실시예들에 따르면, DRAM과 같은 메모리는 본 명세서에서 패턴 매칭 회로부로 지칭되는 패턴 매칭 계산들을 수행하기 위한 회로부를 포함할 수 있다. 일부 실시예에서, 패턴 매칭 회로부는 비교기 회로 및 비교기 회로와 통신하는 하나 이상의 레지스터를 포함할 수 있다. 메모리는 패턴이 데이터에 존재하는지 여부를 결정하기 위해 분석될 패턴 및 데이터를 수신할 수 있다(예를 들어, 데이터는 하나 이상의 패턴 매칭을 포함한다). 패턴 매칭은 메모리에 의해(예를 들어, 보드 상에서) 수행될 수 있고, 분석될 데이터는 패턴 매칭 동작들을 위해 메모리 외부에서 다른 처리 회로부에 제공될 필요가 없다. 오히려, 일부 실시예들에서, 패턴 매칭 동작들의 결과들만이 메모리에 의해 제공될 수 있다. 일부 애플리케이션들에서, 메모리에 의해 패턴 매칭 동작들을 수행하고 결과들만을 제공하는 것은 적어도 메모리와 처리 회로 부 사이에서 더 적은 데이터가 전송되기 때문에 패턴 매칭 동작들에 필요한 시간을 감소시킬 수 있다.
도 1은 본 개시의 적어도 하나의 실시예에 따른 반도체 디바이스(100)의 전체적인 구성을 도시하는 블록도이다. 반도체 디바이스(100)는 일부 예들에서 단일 반도체 칩 상에 집적된 DRAM 디바이스와 같은 반도체 메모리 디바이스일 수 있다.
반도체 디바이스(100)는 메모리 어레이(118)를 포함한다. 메모리 어레이(118)는 복수의 메모리 뱅크들을 포함하는 것으로 도시되어 있다. 도 1의 실시예에서, 메모리 어레이(118)는 8개의 메모리 뱅크(BANK0-BANK7)들을 포함하는 것으로 도시되어 있다. 다른 실시예들에서, 더 많거나 더 적은 뱅크들이 메모리 어레이(118)에 포함될 수 있다. 각각의 메모리 뱅크는 복수의 워드 라인들(WL), 복수의 비트 라인들(BL 및 /BL), 및 복수의 워드 라인들(WL)과 복수의 비트 라인들(BL 및 /BL)의 교차점들에 배열된 복수의 메모리 셀들(MC)을 포함한다. 워드 라인(WL)의 선택은 행 디코더(108)에 의해 수행되고 비트 라인(BL 및 /BL)의 선택은 열 디코더(110)에 의해 수행된다. 선택된 워드 라인(WL)은 워드 라인 드라이버(WD)에 의해 원하는 전하로 구동될 수 있다. 도 1의 실시예에서, 행 디코더(108)는 각각의 메모리 뱅크에 대한 각각의 행 디코더를 포함하고, 열 디코더(110)는 각각의 메모리 뱅크에 대한 각각의 열 디코더를 포함한다. 비트 라인들(BL 및 /BL)은 각각의 감지 증폭기(SAMP)에 결합된다.
비트 라인(BL 또는 /BL)으로부터의 판독 데이터는 감지 증폭기(SAMP)에 의해 증폭되고, 상보적 로컬 데이터 라인들(LIOT/B)을 통해 서브 증폭기 전송 게이트(120)에 제공된다. 서브 증폭기 전송 게이트(120)는 적절한 LIOT/B와 적절한 공유 메인 데이터 라인들(MIO) 사이에 전도성 경로를 형성하기 위한 스위치로서 작용할 수 있다. 판독 데이터는 IO 회로(122)에 데이터를 제공하는 판독 증폭기(126)에 서브 증폭기 전송 게이트(120)에 의해 제공되는 전도 경로를 통해 로컬 데이터 라인들(LIOT/B)로부터 메인 데이터 라인들(MIO)로 전달(pass)될 수 있다. IO 회로(122)로부터 수신된 기록 데이터는 기록 증폭기(126)로부터 출력되고 상보적 메인 데이터 라인들(MIO), 서브 증폭기 전송 게이트(120), 및 상보적 로컬 데이터 라인들(LIOT/B)을 통해 감지 증폭기(SAMP)에 제공되고, 비트 라인(BL 또는 /BL)에 결합된 메모리 셀(MC)에 기록된다.
반도체 디바이스(100)는 메모리 제어기(도 1에 도시되지 않음)와 같은 반도체 디바이스(100) 외부(예를 들어, 메모리 외부)의 디바이스들로부터 정보를 송신 및 수신하기 위한 복수의 외부 단자들을 채용할 수 있다. 외부 단자들은 커맨드 및 어드레스 버스에 결합되어 커맨드 및 어드레스들 및 CS 신호를 수신하는 커맨드 및 어드레스(C/A) 단자들, 클록들(CK 및 /CK)을 수신하는 클록 단자들, 데이터를 제공하는 데이터 단자들(DQ), Alrt 신호를 제공하는 경보 핀(ALERT), 및 전력 공급 전위들(VDD1, VDD2, VSS, VDDQ, 및 VSSQ)을 수신하는 전력 공급 단자들을 포함할 수 있다.
클록 단자들에는 입력 회로(112)에 제공되는 외부 클록들(CK 및 /CK)이 공급된다. 외부 클록들은 상보적일 수 있다. 입력 회로(112)는 CK 및 /CK 클록들에 기초하여 내부 클록(ICLK)을 생성한다. ICLK 클록은 커맨드 디코더(110) 및 내부 클록 생성기(114)에 제공된다. 내부 클록 생성기(114)는 ICLK 클록에 기초하여 다양한 내부 클록들(LCLK)을 제공한다. LCLK 클록들은 다양한 내부 회로들의 타이밍 동작을 위해 사용될 수 있다. 내부 데이터 클록들(LCLK)은 입력/출력 회로(122)에 포함된 회로들의 동작을 타이밍하기 위해 입력/출력 회로(122)에 제공되며, 예를 들어, 기록 데이터의 수신을 타이밍하기 위해 데이터 수신기들에 제공된다.
C/A 단자들에는 메모리 어드레스들이 공급될 수 있다. C/A 단자에 공급된 메모리 어드레스는 커맨드/어드레스 입력 회로(102)를 통해 어드레스 디코더(104)에 제공된다. 어드레스 디코더(104)는 어드레스를 수신하고 디코딩된 행 어드레스(XADD)를 행 디코더(108)에 공급하고 디코딩된 열 어드레스(YADD)를 열 디코더(110)에 공급한다. 어드레스 디코더(104)는 또한 디코딩된 행 어드레스(XADD) 및 열 어드레스(YADD)를 포함하는 메모리 어레이(118)의 뱅크를 나타낼 수 있는 디코딩된 뱅크 어드레스(BADD)를 공급할 수 있다. C/A 단자들에는 커맨드들이 공급될 수 있다. 커맨드들의 예들은 판독 동작들을 수행하기 위한 판독 커맨드들 및 기록 동작들을 수행하기 위한 기록 커맨드들과 같은, 메모리에 액세스하기 위한 액세스 커맨드들뿐만 아니라 다른 커맨드들 및 동작들을 포함한다. 액세스 커맨드들은 액세스될 메모리 셀(들)을 나타내기 위해 하나 이상의 행 어드레스(XADD), 열 어드레스(YADD), 및 뱅크 어드레스(BADD)와 연관될 수 있다.
커맨드는 커맨드/어드레스 입력 회로(102)를 통해 커맨드 디코더(106)에 내부 커맨드 신호로서 제공될 수 있다. 커맨드 디코더(106)는 내부 커맨드 신호들을 디코딩하여 다양한 내부 신호들 및 동작들을 수행하기 위한 커맨드들을 생성하는 회로들을 포함한다. 예를 들어, 커맨드 디코더(106)는 워드 라인(WL)을 선택하기 위한 행 커맨드 신호 및 비트 라인(BL)을 선택하기 위한 열 커맨드 신호를 제공할 수 있다. 다른 예에서, 커맨드 디코더(106)는 모드 레지스터(132)에 제공된 모드 레지스터 커맨드를 제공하여 본 개시의 실시예들에 따른 패턴 매칭 동작들을 가능하게 하는 메모리 조건과 같은 메모리 동작 조건을 선택할 수 있다.
디바이스(100)는 판독 커맨드인 액세스 커맨드를 수신할 수 있다. 활성화 커맨드가 수신되고, 행 및 뱅크 어드레스들이 활성화 커맨드와 함께 적시에 공급되고, 이어서 판독 커맨드 및 열 어드레스가 판독 커맨드와 함께 적시에 공급될 때, 판독 데이터는 행 어드레스 및 열 어드레스에 대응하는 메모리 어레이(118) 내의 메모리 셀들(MC)로부터 판독된다. 판독 커맨드는 메모리 어레이(118)로부터의 판독 데이터가 판독 증폭기(128)에 제공되도록 내부 커맨드를 제공하는 커맨드 디코더(106)(예를 들어, 커맨드 제어기)에 의해 수신된다. 판독 데이터는 입력/출력 회로(122)를 통해 데이터 단자들(DQ)로부터 외부로 출력된다.
디바이스(100)는 기록 커맨드인 액세스 커맨드를 수신할 수 있다. 활성화 커맨드가 수신되고, 행 및 뱅크 어드레스들이 활성화 커맨드와 함께 적시에 공급되고, 이어서 기록 커맨드 및 열 어드레스가 기록 커맨드와 함께 적시에 공급될 때, 데이터 단자들(DQ)에 공급된 기록 데이터는 행 어드레스 및 열 어드레스에 대응하는 메모리 어레이(118) 내의 메모리 셀들에 기록된다. 기록 커맨드는, 기록 데이터가 입력/출력 회로(122) 내의 데이터 수신기들에 의해 수신되도록 내부 커맨드들을 제공하는 커맨드 디코더(106)에 의해 수신된다. 입력/출력 회로(122)의 데이터 수신기에 의한 기록 데이터의 수신을 타이밍하기 위해 기록 클록들이 외부 클록 단자들에 또한 제공될 수 있다. 기록 데이터는 입력/출력 회로(122)를 통해 기록 증폭기(126)에 공급되고, 기록 증폭기(126)에 의해 메모리 어레이(118)에 공급되어 메모리 셀(MC)에 기록된다.
디바이스(100)는 또한 그것이 리프레시 동작을 수행하게 하는 커맨드들을 수신할 수 있다. 리프레시 신호는 커맨드 디코더(106)가 자동 리프레시 및/또는 다른 리프레시 커맨드를 나타내는 신호를 수신할 때 활성화되는 펄스 신호일 수 있다. 일부 실시예들에서, 리프레시 커맨드는 메모리 디바이스(100)에 외부에서 발행될 수 있다. 일부 실시예들에서, 리프레시 커맨드는 디바이스(100)의 컴포넌트에 의해 주기적으로 생성될 수 있다. 리프레시 신호는 리프레시 제어기(116)에 제공된다. 리프레시 제어기(116)에 제공된 리프레시 커맨드는 디바이스(100)가 메모리 뱅크들 중 하나 이상에 대한 리프레시 동작들을 수행하게 할 수 있다.
모드 레지스터(132)는 디바이스(100)에 대한 다양한 모드들을 정의하는 데 사용될 수 있다. 모드 레지스터(132)는 재프로그래밍되거나 리셋되거나 디바이스(100)가 전력을 잃을 때까지 저장된 정보를 유지할 수 있다. 모드 레지스터(132)는 모드 레지스터 기록 커맨드를 통해 기록될 수 있다. 모드 레지스터(132)는 상이한 메모리 동작들 또는 구성들과 관련된 정보를 저장하기 위한 하나 이상의 레지스터들을 포함할 수 있다. 예를 들어, 모드 레지스터(132)는 버스트 길이, 버스트 유형, 레이턴시, 주파수 설정점을 설정하고, 프로그램가능 종단 컴포넌트들을 인에이블하고, 특정 메모리 동작들을 인에이블하는 것뿐만 아니라 다른 것들에 사용될 수 있다. 모드 레지스터(132)는 또한 디바이스(100)에 대한 상태 정보를 제공하기 위해 판독될 수 있는 정보로 프로그래밍될 수 있다. 예를 들어, 모드 레지스터(132)는 준비 상태(ready status), 보정 상태(calibration status)뿐만 아니라 다른 상태 정보를 제공하는데 사용될 수 있다. 판독되는 정보는 디바이스(100)의 회로들에 의해 프로그래밍될 수 있다. 모드 레지스터(132)는 모드 레지스터 판독 커맨드를 통해 판독될 수 있다. 모드 레지스터(132)를 판독하는 것은 동작들 및 구성들의 상태에 관한 정보가 디바이스(100)에 의해 제공되는 것을 허용한다.
본 개시의 실시예들에 따르면, 모드 레지스터(132)는 패턴 매칭 회로(130)에 의해 패턴 매칭 동작들이 수행되는 동작 모드를 특정하는데 사용될 수 있다. 예를 들어, 특정 값이 모드 레지스터(132)에 기록될 때, 패턴 매칭 동작들은 메모리에 제공된 신호들을 사용하여 패턴 매칭 회로부(130)에 의해 구현될 수 있고, 상이한 특정 값이 모드 레지스터(132)에 기록될 때, 패턴 매칭 동작들은 발생하지 않을 수 있다(예를 들어, 패턴 매칭 회로부(130)는 디스에이블될 수 있다). 패턴 매칭 동작은 일부 실시예에서 하나 이상의 패턴 매칭 커맨드들에 응답하여, 예를 들어 비교기 회로를 이용하여 패턴 매칭 회로부(130)에 의해 수행될 수 있다. 모드 레지스터(132)가 패턴 매칭 동작들을 인에이블하도록 프로그래밍될 때, 모드 레지스터(132)는 하나 이상의 레지스터들 및 하나 이상의 비교기 회로들(도 1에 도시되지 않음)을 포함할 수 있는 패턴 매칭 회로부(130)를 인에이블하는 제어 신호(EN_PM)를 제공할 수 있다. 패턴 매칭 회로부(130)가 모드 레지스터(132)로부터의 제어 신호(EN_PM)에 의해 인에이블될 때, 패턴 매칭 회로부(130)는 커맨드 디코더(106)에 의해 제공되는 하나 이상의 패턴 매칭 커맨드들(PatMat)에 응답할 수 있다. 디스에이블되면, 패턴 매칭 커맨드들(PatMat)은 무시될 수 있다. 하나 이상의 패턴 매칭 커맨드들에 응답하여, 패턴 매칭 회로부(130)는 레지스터에 패턴을 저장하고, 메모리 어레이(118)에 저장된 데이터에 대해 패턴 매칭 동작을 수행하여 패턴이 메모리 어레이(118)에 저장된 데이터에 존재하는지를 결정하고, 패턴 매칭 동작의 결과를 레지스터에 기록하고, 패턴 매칭 동작의 결과에 기초하여 어레이(118)의 데이터를 변경하고, 레지스터로부터의 결과를 IO 회로(122)에 제공하고, 및/또는 경보 핀에 경보 신호(Alrt)를 제공할 수 있다.
패턴 매칭 회로부(130)는 디바이스(100)의 일체형 부분을 형성할 수 있다. 예를 들어, 패턴 매칭 회로부(130)는 메모리 어레이(118)와 동일한 반도체 다이에 형성될 수 있다. 일부 예에서, 패턴 매칭 회로부(130)는 메모리 어레이(118)와 동일한 인쇄 회로 기판 상에 있을 수 있다. 이러한 방식으로, 패턴 매칭 회로부는 프로세서 또는 호스트 디바이스보다 메모리 어레이에 더 가까울 수 있다. 예를 들어, 패턴 매칭 회로부(130)와 메모리 어레이(118) 사이의 레이턴시 또는 액세스 시간은, 데이터가 프로세서 또는 호스트에 제공된 경우와 같이, 데이터를 메모리 어레이(118)로부터 디바이스(100)의 출력 핀들 또는 포트들에 전달하기 위한 레이턴시 또는 액세스 시간보다 작을 것으로 예상될 수 있다.
일부 실시예들에서, 모드 레지스터 커맨드들, 패턴 매칭 커맨드들, 및/또는 커맨드 디코더(106)에 의해 제공되는 다른 커맨드들은 디바이스(100) 외부의 메모리 제어기(도 1에 도시되지 않음, 도 3 참조)로부터 수신된 커맨드들에 응답할 수 있다.
디바이스(100)의 전력 공급 단자들에는 전력 공급 전위들(VDD1, VDD2, 및 VSS)이 공급된다. 전력 공급 전위(VDD1, VDD2, 및 VSS)는 내부 전압 생성기 회로(124)에 공급된다. 내부 전압 생성기 회로(124)는 전력 공급 단자들에 공급되는 전력 공급 전위들( VDD1, VDD2, 및 VSS)에 기초하여 다양한 내부 전위들(VPP, VOD, VARY, VPERI) 등을 생성한다. 다양한 내부 전위 및 전력 공급 전위가 디바이스(100)의 상이한 회로들 중 임의의 회로에 사용될 수 있지만, 내부 전위(VPP)는 주로 행 디코더(108)에서 사용되고, 내부 전위(VOD 및 VARY)는 주로 메모리 어레이(118)에 포함된 감지 증폭기(SAMP)에서 사용되며, 내부 전위(VPERI)는 많은 주변 회로 블록에서 사용된다.
전력 공급 단자들에는 또한 전력 공급 전위(VDDQ 및 VSSQ)가 공급된다. 전력 공급 전위(VDDQ 및 VSSQ)는 입력/출력 회로(122)에 공급된다. 전력 공급 단자들에 공급되는 전력 공급 전위(VDDQ 및 VSSQ)는 본 개시내용의 일 실시예에서 전력 공급 단자들에 공급되는 전력 공급 전위(VDD 및 VSS)와 동일한 전위일 수 있다. 전력 공급 단자들에 공급되는 전력 공급 전위(VDDQ 및 VSSQ)는 본 개시내용의 다른 실시예에서 전력 공급 단자들에 공급되는 전력 공급 전위(VDD 및 VSS)와 상이한 전위일 수 있다. 전력 공급 단자들에 공급된 전력 공급 전위(VDDQ 및 VSSQ)는 입력/출력 회로(122)에 대해 사용되어 입력/출력 회로(122)에 의해 생성된 전력 공급 노이즈가 다른 회로 블록으로 전파되지 않는다.
반도체 디바이스(100)의 컴포넌트들(예를 들어, 커맨드 디코더(106), 모드 레지스터(132), 패턴 매칭 회로부(130))은 외부 단자들(예를 들어, C/A, DQ)에 액세스하지 않고 반도체 디바이스(100)의 다른 컴포넌트들과 정보를 송신 및/또는 수신할 수 있다. 일부 실시예들에서, 컴포넌트들은 정보를 송신 및/또는 수신하기 위한 전도성 트레이스들(예를 들어, PatMat 라인, EN_PM 라인, XADD 라인)에 의해 서로 결합될 수 있다. 외부 단자들에 액세스하지 않고 반도체 디바이스(100)의 다른 컴포넌트들과 통신할 수 있는 컴포넌트들은 반도체 디바이스(100) 상에서(예를 들어, 반도체 디바이스(100)가 메모리 디바이스일 때 "메모리 상에" 또는 "메모리의") 고려될 수 있고, 반도체 디바이스(100)의 컴포넌트들과 통신하기 위해 반도체 디바이스(100)의 외부 단자들에 액세스해야 하는 다른 컴포넌트들 또는 디바이스들은 반도체 디바이스(100)의 오프 및/또는 외부에서(예를 들어, 반도체 디바이스(100)가 메모리 디바이스일 때 "오프 메모리") 고려될 수 있다.
도 2는 본 개시의 실시예들에 따른 패턴 매칭 회로부(200)의 블록도이다. 일부 실시예들에서, 패턴 매칭 회로부(200)는 도 1에 도시된 패턴 매칭 회로부(130)에 포함될 수 있다. 패턴 매칭 회로부(200)는 패턴 레지스터(202), 비교기(204), 및 결과 레지스터(206)를 포함할 수 있다. 일부 실시예들에서, 패턴 매칭 회로부(200)는 메모리 어레이를 포함하는 반도체 다이 상에 포함될 수 있다. 일부 실시예들에서, 비교기(204)와 같은 패턴 매칭 회로부(200)의 컴포넌트들 중 일부 또는 전부는 메모리 어레이 아래에 포함될 수 있다.
패턴 매칭 회로부(200)는 제어 신호(EN_PM)에 의해 인에이블될 수 있다. 일부 실시예들에서, 제어 신호는 모드 레지스터(132)와 같은 모드 레지스터에 의해 제공될 수 있다. 패턴 매칭 회로부(200)는 하나 이상의 패턴 매칭 커맨드(PatMat)를 수신할 수 있다. 일부 실시예들에서, 패턴 매칭 커맨드(PatMat)는 커맨드 디코더(106)와 같은 커맨드 디코더에 의해 제공될 수 있다. 패턴 매칭 회로부(200)는 패턴 레지스터(202) 및/또는 비교기(204)에 제공될 수 있는 데이터를 수신할 수 있다. 데이터는 메모리 어레이(118)와 같은 메모리 어레이 및/또는 IO 회로(122)와 같은 IO 회로로부터 제공될 수 있다.
패턴 레지스터(202)는 패턴 매칭 동작에 사용될 하나 이상의 패턴들을 저장할 수 있다. 일부 실시예들에서, 패턴은 하나 이상의 비트들(예를 들어, 비트들의 스트링)을 포함할 수 있다. 일부 실시예들에서, 패턴 레지스터(202)는 다수의 레지스터들(208)을 포함할 수 있다. 각각의 레지스터(208)는 하나 이상의 패턴들을 저장할 수 있다. 일부 실시예들에서, 패턴 레지스터(202)는 다목적 레지스터(Multipurpose Register; MPR)를 사용하여 구현될 수 있다. 이러한 실시예들에서, 패턴은 MPR 기록 커맨드를 사용하여 패턴 레지스터(202)에 기록될 수 있다. 다른 실시예들에서, 패턴은 패턴 레지스터 기록 커맨드에 응답하여 패턴 레지스터(202)에 기록될 수 있다.
비교기(204)는 패턴 레지스터(202)로부터의 패턴(Pat) 및 데이터(일부 실시예에서 메모리 어레이로부터의 것일 수 있음)를 수신할 수 있다. 비교기(204)는 데이터가 Pat를 포함하는지를 결정하기 위해 패턴 매칭 동작을 수행할 수 있다. 일부 실시예들에서, 비교기(204)는, 예를 들어, 패턴 레지스터(202)가 하나 보다 많은 패턴을 포함할 때, 다수의 패턴들(Pat)에 대한 패턴 매칭 동작들을 수행할 수 있다. 다수의 패턴들에 대한 패턴 매칭 동작들은 순차적으로 또는 병렬적으로 수행될 수 있다. 일부 실시예들에서, 비교기(204)는 단일 유형의 패턴 매칭 동작을 수행하도록 하드 코딩될 수 있다. 다른 실시예들에서, 비교기(204)는 특정 유형의 패턴 매칭 동작을 수행하도록 (예를 들어, 패턴 매칭 커맨드(PatMat)를 통해) 프로그래밍될 수 있다. 패턴 매칭 동작의 유형은 수행되는 비교의 유형을 결정할 수 있다(예를 들어, Pat의 정확한 매칭들을 찾고, Pat의 특정 백분율 내의 매칭들을 찾고, Pat가 벡터인 경우, 벡터의 특정 거리 내의 데이터에서 벡터들을 찾는다). 패턴 매칭 동작의 결정에 기초하여, 비교기는 결과(Res)를 생성할 수 있다. 일부 실시예들에서, Res는 Pat가 데이터에 존재하는 횟수의 카운트 값, 데이터 내의 Pat의 매칭 위치의 메모리 어드레스, 플래그, 및/또는 이들의 조합을 포함할 수 있다. 결과(Res)는 패턴 표시(pattern indication)로 지칭될 수도 있다.
일부 실시예들에서, 패턴 매칭 동작의 유형은 패턴 매칭 동작의 결과에 기초하여 패턴 매칭 회로부(200)에 의해 취해질 Res 및/또는 다른 액션들로서 생성된 결과의 유형을 정의할 수 있다. 예를 들어, 일부 실시예들에서, 패턴 매칭 회로부(200)는 데이터가 Pat와 매칭하는 메모리 어레이의 콘텐츠를 삭제하거나 데이터가 Pat와 매칭하는 메모리 어레이에 미리 결정된 값을 기록할 수 있다.
일부 실시예들에서, 비교기(204)는 복수의 XOR 로직 회로와 같은 비교기 로직을 포함할 수 있다. 로직 회로들의 수는 매칭될 패턴의 길이(예를 들어, 비트들의 수)에 적어도 부분적으로 기초할 수 있다. 일부 실시예들에서, 비교기(204)는 하나 이상의 CAM(content addressable memory) 셀들을 포함할 수 있다. 다른 로직 회로들 또는 다른 회로 컴포넌트들(예를 들어, 연산 증폭기들)이 일부 실시예들에서 비교기(204)에 포함될 수 있다.
결과 레지스터(206)는 패턴 매칭 동작에 응답하여 비교기(204)에 의해 출력된 하나 이상의 결과들(Res)(또는 결과들의 표시)을 저장할 수 있다. 일부 실시예들에서, 결과 레지스터(206)는 다수의 레지스터들(210)을 포함할 수 있다. 각각의 레지스터(210)는 하나 이상의 결과들을 저장할 수 있다. 일부 실시예들에서, 결과 레지스터(206)는 다목적 레지스터(MPR)를 포함할 수 있다. 이러한 실시예들에서, 결과 레지스터(206)는 MPR 판독 커맨드를 사용하여 판독될 수 있다. 다른 실시예들에서, 결과는 결과 레지스터 판독 커맨드에 응답하여 결과 레지스터(206)로부터 판독될 수 있다. 일부 실시예들에서, 결과는 출력으로서 제공될 수 있다. 일부 실시예들에서, 결과 레지스터(206)는 IO 회로(122)와 같은 IO 회로에 출력(Output)을 제공할 수 있다. 일부 실시예들에서, 결과 레지스터(206)는 출력을 메모리 어레이에 제공할 수 있다. 일부 실시예들에서, 결과 레지스터(206)는 경보 신호와 같은 신호를 출력으로서 생성할 수 있다. 경보 신호는 일부 실시예들에서 경보 핀(도 1 참조)에 제공될 수 있다.
선택적으로, 일부 실시예들에서, 비교기(204)는 결과 레지스터(206)에 추가하여 또는 그 대신에 출력을 제공할 수 있다. 이들 실시예들에서, 결과 레지스터(206)는 생략될 수 있다.
도 3은 본 개시의 실시예들에 따른 시스템(300)의 블록도이다. 시스템(300)은 컴퓨팅 디바이스(302) 및 사용자 인터페이스(304)를 포함할 수 있다. 컴퓨팅 디바이스(302)는 컴퓨터 판독 가능 매체(306), 중앙 처리 유닛(CPU)(316), 메모리 제어기(318) 및 메모리(322)를 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(302)는 애플리케이션 특정 집적 회로(ASIC)(320)를 더 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(302)는 CPU(316) 대신에 ASIC(320)를 포함할 수 있다. CPU가 도 3에 예시되어 있지만, 일반적으로 임의의 수 또는 종류의 프로세서(들)가 사용될 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(302)가 ASIC(320)를 포함할 때, 메모리 제어기(318)는 ASIC(320)와 통합될 수 있다. 다른 실시예들에서, 메모리 제어기(318)는 ASIC(320)로부터 분리될 수 있다. 일부 실시예들에서, 메모리(322)는 디바이스(100) 및/또는 패턴 매칭 회로부(200)의 적어도 일부를 포함할 수 있다.
사용자 인터페이스(304)는 컴퓨팅 디바이스(302)의 출력들을 사용자에게 제공하고, 사용자로부터의 입력들을 컴퓨팅 디바이스(302)에 제공할 수 있다. 일부 실시예들에서, 사용자 인터페이스(304)는 출력들을 제공하기 위한 디스플레이(예를 들어, LCD, CRT) 및/또는 스피커들을 포함할 수 있다. 일부 실시예들에서, 사용자 인터페이스(304)는 키보드, 터치 스크린, 마우스, 및/또는 트랙 패드와 같은 입력들을 제공하기 위한 사용자 제어들을 포함할 수 있다.
컴퓨터 판독가능 매체(306)는 비일시적 컴퓨터 판독가능 매체를 포함하는 임의의 매체를 사용하여 구현될 수 있다. 예들은 메모리, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 휘발성 또는 비휘발성 메모리, 하드 드라이브, 솔리드 스테이트 드라이브들, 또는 다른 저장 장치를 포함한다. 단일 컴퓨터 판독가능 매체(306)가 도 3에 도시되어 있지만, 다수의 매체가 존재할 수 있고, 본 명세서에 설명된 실행가능 명령어들이 하나 이상의 컴퓨터 판독가능 매체 상에 제공될 수 있다. 컴퓨터 판독가능 매체는 소프트웨어 및/또는 펌웨어 컴포넌트들을 구현하는 데 사용될 수 있다. 컴퓨터 판독가능 매체(306)는 패턴 매칭 애플리케이션(308)에 대한 실행가능 명령어들로 인코딩될 수 있다. 실행 가능 명령어들은 예를 들어 CPU(316)에 의해 실행될 수 있다. 패턴 매칭 애플리케이션(308)은 신경망, 신경망을 위한 트레이닝 프로그램, 빅 데이터 분석 애플리케이션, 및/또는 다른 애플리케이션을 구현하기 위한 명령어들을 포함할 수 있다. 일부 실시예들에서, 컴퓨터 판독가능 매체(306)는 메모리 애플리케이션 프로그래밍 인터페이스(API)(312)에 대한 실행가능 명령어들로 인코딩될 수 있다. 메모리 API(312)는 사용자(예를 들어, 다른 프로세스)가 메모리(322)의 온 보드 패턴 매칭 능력들에 대한 액세스 및 제어를 허용할 수 있다. 예를 들어, 메모리 API(312)는 패턴 매칭 애플리케이션(308)이 메모리(322)의 온 보드 패턴 매칭 능력들을 이용할지 또는 CPU(316) 상에서 패턴 매칭 동작들을 수행할지 여부를 사용자가 결정하도록 허용할 수 있다. 다른 예에서, 메모리 API(312)는 사용자가 메모리(322)에 의해 수행될 패턴 매칭 동작의 유형을 결정하게 할 수 있다. 일부 실시예들에서, 메모리 API(312)는 패턴 매칭 애플리케이션(308) 내에 포함될 수 있다. 일부 실시예들에서, 패턴 매칭 애플리케이션(308)은 메모리(322) 및 메모리 API(312)의 온 보드 패턴 매칭 능력들이 생략될 수 있는지 여부 및 이용 방법을 자동으로 결정한다. 일부 실시예들에서, 컴퓨터 판독가능 매체(306)는 드라이버(314)를 구현하기 위한 명령어들로 인코딩될 수 있다. 드라이버(314)는 컴퓨팅 디바이스(302)의 하나 이상의 컴포넌트들(예를 들어, CPU(316), 메모리 제어기(318), ASIC(320) 및/또는 메모리(322))과 상호 작용하기 위해 컴퓨팅 디바이스(302)의 운영 체제에 대한 명령어들을 제공할 수 있다.
CPU(316)는 컴퓨터 판독가능 매체(306) 상에 인코딩된 명령어들을 실행할 수 있다. 예를 들어, 패턴 매칭 애플리케이션(308)을 구현하는 데 사용되는 명령어들이다. 일부 실시예들에서, CPU(316)는 하나 이상의 그래픽 처리 유닛들을 포함하거나 그에 의해 대체될 수 있다. CPU(316)는 메모리 제어기(318)를 통해 메모리(322)로부터 데이터를 제공 및 수신할 수 있다. 메모리 제어기(318)는 메모리(322)로부터 데이터가 어떻게 입력되고 출력되는지를 제어할 수 있다. 메모리 제어기(318)는 모드 레지스터 기록 커맨드들, 판독 커맨드들, 기록 커맨드들, 및/또는 패턴 매칭 동작 커맨드들과 같은 커맨드들을 메모리(322)에 발행할 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스(302)는 CPU(316)에 추가하여 또는 그 대신에 ASIC(320)를 포함할 수 있다. 컴퓨팅 디바이스(302)가 ASIC(320) 및 CPU(316) 둘 모두를 포함할 때, ASIC(320)는 신호들을 수신하여 CPU(316) 및/또는 컴퓨터 판독가능 매체(306)에 제공할 수 있다. 컴퓨팅 디바이스(302)가 CPU(316)를 포함하지 않을 때, ASIC(320)은 비일시적 컴퓨터 판독가능 매체(306)에 의해 제공되는 명령어들에 응답하여 계산들을 수행할 수 있다. 일부 실시예들에서, ASIC(320)은 CPU(316)보다 더 적은 컴퓨팅 능력들을 가질 수 있지만, ASIC(320)은 CPU(316)보다 더 작을 수 있고 및/또는 더 적은 전력을 요구할 수 있다. 모바일 디바이스들과 같은 일부 애플리케이션들에서, ASIC(320)의 크기 및 전력 장점들은 CPU(316)의 컴퓨팅 장점들을 능가할 수 있다. ASIC(320)이 도 3에 도시되어 있지만, 다른 예들에서 다른 처리 회로부가 사용될 수 있다(예를 들어, 하나 이상의 제어기들, 마이크로제어기들, FPGA(field programmable gate array) 회로들).
도 4는 본 개시의 실시예들에 따른 방법(400)의 흐름도이다. 일부 실시예들에서, 방법(400)은 디바이스(100), 패턴 매칭 회로부(200) 및/또는 시스템(300)에 의해 적어도 부분적으로 수행될 수 있다.
블록(402)에서, "제1 패턴을 제1 레지스터에 저장하는 것"이 수행될 수 있다. 일부 실시예들에서, 패턴은 패턴 레지스터(202)에 저장될 수 있다. 블록(404)에서, "비교기 회로에서 제1 패턴 및 데이터를 수신하는 것"이 수행될 수 있다. 일부 실시예들에서, 비교기(204)는 제1 패턴 및 데이터를 수신할 수 있다. 일부 실시예들에서, 데이터는 메모리 어레이(118)와 같은 메모리 어레이로부터 수신된다. 블록(406)에서, "패턴 및 데이터에 대해 패턴 매칭 동작을 수행하는 것"이 수행될 수 있다. 일부 실시예들에서, 패턴 매칭 동작은 비교기에 의해 수행될 수 있다. 패턴 매칭 동작은 제1 패턴이 데이터에 존재하는지 여부를 결정할 수 있다. 블록(408)에서, "패턴 매칭 동작에 기초하여 제1 결과를 생성하는 것"이 수행될 수 있다. 일부 실시예들에서, 결과는 비교기(204)와 같은 비교기 회로에 의해 생성될 수 있다.
블록(410)에서, "제1 결과를 제2 레지스터에 저장하는 것"이 수행될 수 있다. 일부 실시예들에서, 결과는 결과 레지스터(206)에 저장될 수 있다. 일부 실시예들에서, 결과는 제1 패턴이 데이터에 존재하는 횟수의 카운트 값, 데이터 내의 제1 패턴의 매칭의 위치의 메모리 어드레스, 플래그 - 플래그는 제1 패턴이 데이터에 존재하는 경우 제1 값을 갖고, 제1 패턴이 데이터에 존재하지 않는 경우 제2 값을 가짐 -, 및/또는 이들의 조합을 포함한다.
일부 실시예들에서, 방법(400)은 "레지스터 기록 커맨드를 수신하는"이 수행될 수 있는 블록(412)을 더 포함할 수 있다. 일부 실시예들에서, 제1 패턴을 제1 레지스터에 저장하는 것은 레지스터 기록 커맨드에 응답하여 수행될 수 있다. 일부 실시예들에서, 커맨드는 커맨드 디코더(106)와 같은 커맨드 디코더로부터 수신될 수 있다.
일부 실시예들에서, 방법(400)은 "패턴 매칭 커맨드를 수신하는"이 수행되는 블록(414)을 더 포함할 수 있다. 일부 실시예들에서, 제1 패턴 매칭 동작을 수행하는 것은 패턴 매칭 커맨드에 응답하여 수행될 수 있다. 일부 실시예들에서, 커맨드는 커맨드 디코더(106)와 같은 커맨드 디코더로부터 수신될 수 있다. 일부 실시예들에서, 패턴 매칭 커맨드는 블록들(412, 402, 404, 및/또는 406)이 수행되기 전에 수신될 수 있다. 일부 실시예들에서, 패턴 매칭 커맨드는 블록들(412, 402, 및/또는 404)이 수행된 후에 수신될 수 있다.
일부 실시예들에서, 방법(400)은 "레지스터 판독 커맨드를 수신하는" 및 "레지스터 판독 커맨드에 응답하여 제2 레지스터로부터 제1 결과를 제공하는"이 수행되는 블록들(416 및 418)을 더 포함할 수 있다. 일부 실시예들에서, 결과는 IO 회로(122)와 같은 IO 회로로 출력될 수 있다. 일부 실시예들에서, 결과는 경보 핀에 출력될 수 있다.
일부 실시예들에서, 방법(400)은 "제1 값을 모드 레지스터에 기록하는 것"이 수행될 수 있는 블록(420)을 더 포함할 수 있다. 일부 실시예들에서, 제1 값은 모드 레지스터(132)에 기록될 수 있다. 일부 실시예들에서, 제1 값은 모드 레지스터가 패턴 매칭 회로부(130)와 같은 비교기 회로 및/또는 패턴 매칭 회로부를 인에이블하게 할 수 있다. 일부 실시예들에서, 방법(400)은 "패턴 매칭 동작의 유형을 프로그래밍하는 것"이 수행될 수 있는 블록(422)을 더 포함할 수 있다. 일부 실시예들에서, 패턴 매칭 동작은 비교기 회로에 프로그래밍될 수 있다. 블록(422)은 블록들(414 및/또는 412) 이전, 이후 또는 동시에 수행될 수 있다.
일부 실시예들에서, 방법(400)은 "활성 경보 신호를 제공하는 것"이 수행될 수 있는 블록(424)을 더 포함할 수 있다. 일부 실시예들에서, 활성 경보 신호는 제1 결과를 제2 레지스터에 저장하는 것에 응답한다. 일부 실시예들에서, 활성 경보 신호는 비교기 회로에 의해 제공된다. 일부 실시예들에서, 활성 경보 신호는 제2 레지스터에 의해 제공된다. 일부 실시예들에서, 블록(424)은 블록들(410, 416, 및/또는 418) 이전, 이후 및/또는 동시에 수행될 수 있다.
일부 실시예들에서, 방법(400)은 "제1 레지스터 또는 제3 레지스터에 제2 패턴을 저장하는 단계", "비교기 회로로, 제2 패턴이 데이터에 존재하는지를 결정하기 위해 제2 패턴 및 데이터에 대해 패턴 매칭 동작을 수행하는 단계", "패턴 매칭 동작에 기초하여 제2 결과를 생성하는 단계", 및 "제2 결과를 제2 레지스터에 저장하는 단계"를 더 포함할 수 있다. 일부 실시예들에서, 제3 레지스터는 패턴 레지스터(202)에 포함될 수 있다. 일부 실시예들에서, 제2 패턴에 대해 패턴 매칭 동작을 수행하는 것은 블록들(402-410)에 도시된 데이터 및 제1 패턴에 대해 패턴 매칭 동작을 수행한 후에 수행된다.
도 5는 본 개시의 실시예들에 따른 방법(500)의 흐름도이다. 일부 실시예들에서, 방법(500)은 디바이스(100), 패턴 매칭 회로부(200) 및/또는 시스템(300)에 의해 적어도 부분적으로 수행될 수 있다.
블록(502)에서, "메모리 어레이에 데이터를 저장하는 것"이 수행될 수 있다. 저장은 일부 실시예들에서 디바이스(100) 및/또는 메모리(322)의 하나 이상의 컴포넌트들에 의해 수행될 수 있다. 블록(504)에서, "제1 레지스터에 패턴을 저장하는 것"이 수행될 수 있다. 저장은 패턴 매칭 회로부(130), 패턴 매칭 회로부(200), 및/또는 메모리(322)와 같은 패턴 매칭 회로부에 의해 수행될 수 있다. 블록(506)에서, "비교기 회로에서 패턴 및 데이터를 수신하는 것"이 수행될 수 있다. 일부 실시예들에서, 비교기 회로는 비교기 회로(204)일 수 있다. 블록(508)에서, "패턴 및 데이터에 대해 패턴 매칭 동작을 수행하고 결과를 생성하는 것"이 수행될 수 있다. 일부 실시예들에서, 패턴 매칭 동작은 비교기 회로에 의해 수행될 수 있다. 일부 실시예들에서, 패턴 매칭 동작은 패턴이 데이터에 존재하는지 여부를 결정할 수 있다.
블록(510)에서, "메모리 어레이에서 데이터를 수정하는 것"이 수행될 수 있다. 일부 실시예들에서, 수정은 패턴 매칭 동작의 결과에 기초할 수 있다. 일부 실시예들에서, 메모리 어레이의 데이터를 수정하는 것은, 적어도 부분적으로, 패턴 매칭 회로부(130), 패턴 매칭 회로부(200), 및/또는 메모리(322)에 의해 수행될 수 있다. 일부 실시예들에서, 데이터를 수정하는 단계는 데이터가 패턴과 매칭하는 메모리 어레이의 위치에서 메모리 어레이의 콘텐츠를 삭제하는 단계를 포함할 수 있다. 일부 실시예들에서, 데이터를 수정하는 단계는 데이터가 패턴과 매칭하는 메모리 어레이의 위치에서 메모리 어레이에 미리 결정된 값을 기록하는 단계를 포함할 수 있다.
일부 실시예들에서, 방법(500)은 "패턴 매칭 동작의 결과를 제2 레지스터에 저장하는 것"이 수행될 수 있는 블록(512)을 포함할 수 있다. 블록(512)은 일부 실시예들에서 블록(510) 이전, 이후, 또는 동시에 수행될 수 있다. 일부 실시예들에서, 방법(500)은 "메모리 어레이의 데이터가 제2 레지스터에서 수정된 위치를 저장하는 것"이 수행될 수 있는 블록(514)을 포함할 수 있다. 블록(514)은 일부 실시예들에서 블록(510) 및/또는 블록(512) 이전에, 이후에, 또는 동시에 수행될 수 있다. 일부 실시예들에서, 블록(514)은 블록(512) 대신에 수행될 수 있다.
본 명세서에 설명된 장치들, 시스템들 및 방법들은 패턴 매칭이 메모리에 의해 수행되게 할 수 있다. 이것은 데이터가 메모리 외부에서 다른 처리 회로부에 제공되지 않고 분석될 수 있게 한다. 일부 실시예들에서, 패턴 매칭 동작들의 결과들만이 메모리에 의해 제공될 수 있다. 일부 애플리케이션들에서, 이는 패턴 매칭 동작들에 대해 이용되는 시간을 감소시킬 수 있다. 예를 들어, 메모리 어레이로부터 데이터를 특정 패턴과 비교할 수 있는 프로세서(예를 들어, CPU)로 다양한 데이터를 발송하는 대신, 메모리 디바이스에는 패턴 매칭 능력이 제공될 수 있다. 그런 다음, 프로세서는 패턴 매칭 동작 모드를 요청하고, 메모리 디바이스로부터, 메모리 어레이에서의 특정 패턴의 존재 또는 부재에 관한 정보를 수신할 수 있다.
물론, 본 명세서에 설명된 예들, 실시예들 또는 프로세스들 중 임의의 하나가 하나 이상의 다른 예들, 실시예들 및/또는 프로세스들과 조합될 수 있거나, 본 시스템들, 디바이스들 및 방법들에 따라 별도의 디바이스들 또는 디바이스 부분들 사이에서 분리 및/또는 수행될 수 있다는 것이 이해되어야 한다
마지막으로, 상기 논의는 단지 예시적인 것으로 의도되며, 첨부된 청구항들을 임의의 특정 실시예 또는 실시예들의 그룹으로 제한하는 것으로 해석되어서는 안된다. 따라서, 본 개시의 다양한 실시예들이 특히 상세히 설명되었지만, 다수의 수정들 및 대안적인 실시예들이 다음의 청구항들에 설명된 바와 같은 본 개시의 더 넓고 의도된 사상 및 범위로부터 벗어나지 않고 당업자에 의해 고안될 수 있다는 것이 또한 이해되어야 한다. 따라서, 명세서 및 도면은 예시적인 방식으로 간주되어야 하며 첨부된 청구항들의 범위를 제한하도록 의도되지 않는다.

Claims (27)

  1. 장치에 있어서,
    반도체 다이 상에 데이터를 저장하도록 구성된 메모리 어레이;
    상기 반도체 다이 상에 있고 비트들의 스트링의 패턴을 저장하도록 구성된 제1 레지스터; 및
    상기 반도체 다이 상의 또는 상기 메모리 어레이 아래에 위치되는 비교기 회로를 포함하고, 상기 비교기 회로는:
    상기 데이터 및 비트들의 상기 스트링의 상기 패턴의 표시를 수신하고, 상기 데이터가 비트들의 상기 스트링의 상기 패턴을 포함하는지 여부를 결정하고, 및
    상기 데이터가 비트들의 상기 스트링의 상기 패턴을 포함하는지 여부의 결정에 기초하여 결과를 생성하도록 구성되는, 장치.
  2. 제1항에 있어서, 상기 결과의 표시를 저장하도록 구성된 상기 반도체 다이 상의 제2 레지스터를 더 포함하는, 장치.
  3. 제2항에 있어서, 상기 제1 레지스터 또는 상기 제2 레지스터 중 적어도 하나는 다목적 레지스터인, 장치.
  4. 제2항에 있어서, 상기 제2 레지스터는 상기 결과의 상기 표시가 상기 제2 레지스터에 저장될 때 활성 경보 신호를 상기 반도체 다이로부터 떨어져 위치된 디바이스에 제공하도록 더 구성되고, 상기 활성 결과 신호는 경보 핀에 제공되는, 장치.
  5. 제2항에 있어서, 상기 패턴은 제1 다목적 레지스터 커맨드에 응답하여 상기 제1 레지스터에 기록되고, 상기 결과는 제2 다목적 레지스터 커맨드에 응답하여 상기 제2 레지스터로부터 판독되는, 장치.
  6. 제1항에 있어서, 상기 비교기 회로는 상기 데이터가 상기 패턴을 포함하는지 여부를 결정하기 위해 복수의 패턴 매칭 동작들 중 적어도 하나를 수행하도록 프로그래밍가능한, 장치.
  7. 제1항에 있어서, 상기 제1 레지스터는 제2 패턴을 저장하도록 더 구성되고, 상기 비교기 회로는 상기 데이터가 상기 제2 패턴을 포함하는지 여부를 결정하고 제2 결과를 생성하도록 더 구성되는, 장치.
  8. 제1항에 있어서, 제2 패턴을 저장하도록 구성된 상기 반도체 다이 상의 제3 레지스터를 더 포함하고, 상기 비교기 회로는 상기 제2 패턴을 수신하고 상기 데이터가 상기 제2 패턴을 포함하는지 여부를 결정하고 제2 결과를 생성하도록 더 구성되는, 장치.
  9. 제1항에 있어서, 모드 레지스터를 더 포함하고, 상기 비교기 회로는 제1 값이 상기 모드 레지스터에 기록될 때 인에이블되는, 장치.
  10. 제1항에 있어서, 상기 비교기 회로는 상기 결과가 상기 패턴을 포함하는 상기 데이터를 나타낼 때 활성 경보 신호를 제공하도록 더 구성되고, 상기 활성 결과 신호는 상기 메모리 외부의 디바이스에 액세스 가능한 경보 핀에 제공되는, 장치.
  11. 방법에 있어서,
    반도체 다이 상의 제1 레지스터에 제1 패턴을 저장하는 단계 - 상기 제1 패턴은 비트들의 스트링을 포함함 -;
    상기 반도체 다이 상의 비교기 회로에서 데이터 및 상기 제1 패턴의 표시를 수신하는 단계;
    상기 비교기 회로로 상기 데이터가 상기 제1 패턴을 포함하는지 여부를 결정하는 단계;
    상기 결정에 기초하여 제1 결과를 생성하는 단계; 및
    상기 제1 결과의 표시를 상기 메모리 상의 제2 레지스터에 저장하는 단계를 포함하는, 방법.
  12. 제11항에 있어서, 레지스터 기록 커맨드를 수신하는 단계를 더 포함하고, 상기 제1 패턴을 상기 제1 레지스터에 저장하는 단계는 상기 레지스터 기록 커맨드에 응답하여 수행되는, 방법.
  13. 제11항에 있어서, 패턴 매칭 커맨드를 수신하는 단계를 더 포함하고, 상기 결정하는 단계는 상기 패턴 매칭 커맨드에 응답하여 수행되는, 방법.
  14. 제11항에 있어서,
    레지스터 판독 커맨드를 수신하는 단계; 및
    상기 레지스터 판독 커맨드에 응답하여 상기 제2 레지스터로부터의 상기 제1 결과의 표시를 상기 메모리 상의 IO 회로에 제공하는 단계를 더 포함하는, 방법.
  15. 제11항에 있어서, 제1 값을 모드 레지스터에 기록하는 단계를 더 포함하고, 상기 제1 값은 상기 모드 레지스터가 상기 비교기 회로를 인에이블하게 하는, 방법.
  16. 제11항에 있어서, 상기 제1 결과의 상기 표시를 상기 제2 레지스터에 저장하는 것에 응답하여 활성 경보 신호를 제공하는 단계를 더 포함하는, 방법.
  17. 제11항에 있어서, 상기 비교기 회로에 패턴 매칭 동작의 유형을 프로그래밍하는 단계를 더 포함하는, 방법.
  18. 제11항에 있어서, 상기 제1 결과는 상기 제1 패턴이 상기 데이터에 존재하는 횟수의 카운트 값을 포함하는, 방법.
  19. 제11항에 있어서, 상기 제1 결과는 상기 데이터 내의 상기 제1 패턴의 매칭의 위치의 메모리 어드레스를 포함하는, 방법.
  20. 제11항에 있어서, 상기 제1 결과는 플래그를 포함하고, 상기 플래그는 상기 제1 패턴이 상기 데이터에 포함되는 경우 제1 값을 갖고, 상기 제1 패턴이 상기 데이터에 포함되지 않는 경우 제2 값을 갖는, 방법.
  21. 제11항에 있어서,
    상기 제1 레지스터 또는 제3 레지스터에 제2 패턴을 저장하는 단계;
    상기 비교기 회로를 사용하여, 상기 제2 패턴이 상기 데이터에 포함되는지 여부를 결정하는 단계;
    상기 결정에 기초하여 제2 결과를 생성하는 단계; 및
    상기 제2 결과의 표시를 상기 제2 레지스터에 저장하는 단계를 더 포함하는, 방법.
  22. 제21항에 있어서, 상기 제2 패턴이 상기 데이터에 포함되는지 여부를 결정하는 단계는, 상기 제1 패턴이 상기 데이터에 포함되는지 여부를 결정한 후에 수행되는, 방법.
  23. 메모리에 있어서,
    메모리 셀들;
    상기 메모리의 외부 단자로부터 패턴을 나타내는 데이터를 수신하도록 구성된 다목적 레지스터;
    상기 메모리 셀들의 콘텐츠들을 상기 패턴을 나타내는 상기 데이터와 비교하고 패턴 표시를 제공하도록 구성된 비교기 회로부; 및
    상기 패턴 표시를 저장하고 상기 패턴 표시를 상기 메모리의 다른 외부 단자에 액세스 가능하게 하도록 구성된 결과 레지스터를 포함하는, 메모리.
  24. 제23항에 있어서, 상기 다목적 레지스터는 상기 메모리의 IO 회로를 통해 상기 외부 단자로부터 상기 데이터를 수신하는, 메모리.
  25. 제23항에 있어서, 상기 결과 레지스터는 제2 다목적 레지스터를 포함하는, 메모리.
  26. 제23항에 있어서, 상기 결과 레지스터는 상기 패턴 표시를 상기 메모리의 IO 회로에 제공함으로써 상기 패턴 표시를 상기 메모리의 다른 외부 단자에 액세스 가능하게 하는, 메모리.
  27. 제23항에 있어서, 상기 결과 레지스터는 상기 패턴 표시를 경보 핀에 제공함으로써 상기 패턴 표시를 상기 메모리의 다른 외부 단자에 액세스 가능하게 하는, 메모리.
KR1020227033968A 2020-03-03 2021-02-24 온 메모리 패턴 매칭을 위한 장치들 및 방법들 KR20220148259A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/807,692 US11442940B2 (en) 2020-03-03 2020-03-03 Apparatuses and methods for on-memory pattern matching
US16/807,692 2020-03-03
PCT/US2021/019435 WO2021178179A1 (en) 2020-03-03 2021-02-24 Apparatuses and methods for on-memory pattern matching

Publications (1)

Publication Number Publication Date
KR20220148259A true KR20220148259A (ko) 2022-11-04

Family

ID=77555838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227033968A KR20220148259A (ko) 2020-03-03 2021-02-24 온 메모리 패턴 매칭을 위한 장치들 및 방법들

Country Status (5)

Country Link
US (2) US11442940B2 (ko)
EP (1) EP4115422A4 (ko)
KR (1) KR20220148259A (ko)
CN (1) CN115552525A (ko)
WO (1) WO2021178179A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442940B2 (en) 2020-03-03 2022-09-13 Micron Technology, Inc. Apparatuses and methods for on-memory pattern matching
US11586958B2 (en) * 2020-04-06 2023-02-21 Micron Technology, Inc. Apparatuses, systems, and methods for machine learning using on-memory pattern matching
US11676052B2 (en) * 2020-04-15 2023-06-13 Micron Technology, Inc. Apparatuses and methods for inference processing on edge devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3361825B2 (ja) 1990-08-22 2003-01-07 テキサス インスツルメンツ インコーポレイテツド メモリ・アレイ・アーキテクチャ
JPH064582A (ja) * 1992-06-24 1994-01-14 Matsushita Electric Ind Co Ltd 中央演算装置
JP2007058450A (ja) * 2005-08-23 2007-03-08 Freescale Semiconductor Inc 半導体集積回路
US7724559B2 (en) 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
JP2009099202A (ja) * 2007-10-17 2009-05-07 Toshiba Corp 半導体記憶装置
US8127281B2 (en) * 2007-12-12 2012-02-28 International Business Machines Corporation Method and apparatus for efficient multiple-pattern based matching and transformation of intermediate language expression trees
US7995387B2 (en) 2009-01-30 2011-08-09 Sandisk Il Ltd. System and method to read data subject to a disturb condition
US8345483B2 (en) * 2011-01-21 2013-01-01 Spansion Llc System and method for addressing threshold voltage shifts of memory cells in an electronic product
US9121892B2 (en) * 2012-08-13 2015-09-01 Analog Devices Global Semiconductor circuit and methodology for in-system scan testing
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9805802B2 (en) 2015-09-14 2017-10-31 Samsung Electronics Co., Ltd. Memory device, memory module, and memory system
US11442940B2 (en) 2020-03-03 2022-09-13 Micron Technology, Inc. Apparatuses and methods for on-memory pattern matching

Also Published As

Publication number Publication date
EP4115422A4 (en) 2024-03-20
US11442940B2 (en) 2022-09-13
CN115552525A (zh) 2022-12-30
WO2021178179A1 (en) 2021-09-10
US20220391396A1 (en) 2022-12-08
EP4115422A1 (en) 2023-01-11
US20210279242A1 (en) 2021-09-09
US11829366B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
US11768603B2 (en) Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
US11790981B2 (en) Method of performing internal processing operation of memory device
US20190051344A1 (en) Apparatuses and methods for selective row refreshes
US11829366B2 (en) Apparatuses and methods for on-memory pattern matching
TWI700585B (zh) 半導體裝置及包含該半導體裝置的記憶體系統
KR20200100951A (ko) 메모리 장치 및 이를 포함하는 데이터 처리 시스템
KR102078562B1 (ko) 리프레쉬 어드레스 생성기 및 이를 포함하는 휘발성 메모리 장치
US10043587B2 (en) Apparatuses and methods including nested mode registers
US11573916B2 (en) Apparatuses and methods for writing data to a memory
US11663124B2 (en) Apparatuses and methods for interfacing on-memory pattern matching
US11727965B2 (en) Nonvolatile memory device, operating method of nonvolatile memory device, and electronic device including nonvolatile memory device
US9424899B2 (en) Apparatuses and methods for providing active and inactive clock signals to a command path circuit
US11631448B1 (en) Memory device performing refresh operation and method of operating the same
US20230221871A1 (en) Memory device and operating method thereof