KR20220112280A - 직렬화된 뉴럴 네트워크 컴퓨팅 유닛 - Google Patents

직렬화된 뉴럴 네트워크 컴퓨팅 유닛 Download PDF

Info

Publication number
KR20220112280A
KR20220112280A KR1020227022815A KR20227022815A KR20220112280A KR 20220112280 A KR20220112280 A KR 20220112280A KR 1020227022815 A KR1020227022815 A KR 1020227022815A KR 20227022815 A KR20227022815 A KR 20227022815A KR 20220112280 A KR20220112280 A KR 20220112280A
Authority
KR
South Korea
Prior art keywords
memory
cells
cell
synaptic
bit
Prior art date
Application number
KR1020227022815A
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 KR20220112280A publication Critical patent/KR20220112280A/ko

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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
    • G06N3/0454
    • 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
    • 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/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/223Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using MOS with ferroelectric gate insulating film
    • 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/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2293Timing circuits or methods
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0425Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0441Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
    • G11C16/045Floating gate memory cells with both P and N channel memory transistors, usually sharing a common floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

직렬화된 뉴럴 네트워크 컴퓨팅 유닛이 개시된다. 이러한 컴퓨팅 유닛은, 비트 라인과; 복수의 메모리 블록들을 갖는 메모리 어레이와, 여기서 각각의 메모리 블록은 하나 또는 하나보다 많은 메모리 셀들을 갖고, 각각의 셀은 비트 라인에 연결되며; 그리고 제어 회로를 포함하고, 제어 회로는, 직렬화된 입력을 순차적으로 메모리 셀들에 적용하여 메모리 셀들의 출력들이 직렬화된 입력에 응답하여 순차적으로 생성되도록 하는 것과, 여기서 출력들 각각은 메모리 셀 내에 저장된 가중치 값과 입력의 곱에 대응하며; 그리고 각각이 특정 전류량을 갖는 기준 전류 레벨들의 그룹을 설정하여 기준 전류 레벨들의 세트에 대응하는 각각의 출력 전류들을 발생시킬 때의 메모리 셀들을 제어 회로가 제어하도록 하는 것을 수행하도록 구성된다.

Description

직렬화된 뉴럴 네트워크 컴퓨팅 유닛
본 출원은 2019년 12월 3일자로 출원된 발명의 명칭이 "Serialized nonvolatile neural network computing unit"인 미국 임시 출원 제 62/942,923 호의 이익들을 주장한다.
본 발명은, 높은 정밀도의 메모리 셀(memory cell)들을 갖는 메모리 어레이(memory array)의 가로행 및 세로열 회로에서 복잡한 높은 정밀도의 디지털-대-아날로그 및 아날로그-대-디지털 변환기 회로들을 요구하지 않으면서, 뉴럴 네트워크 컴퓨팅 유닛(neural network computing unit)이 디지털 입력 신호, 낮은 정밀도의 메모리 셀, 및 메모리 어레이의 종래의 1-비트 감지 증폭기 회로를 사용하여 구현될 수 있도록 입력, 가중치, 및 출력 패턴들이 직렬화되는 직렬화된 뉴럴 네트워크 컴퓨팅 유닛을 설명한다.
뉴럴 네트워크 컴퓨팅 유닛이 인공 지능 및 머신 학습 응용들에서 점점 더 사용된다. 컴퓨팅의 주된 부분은 입력 데이터 및 대응하는 훈련된 가중치 값들 간의 대량의 곱셈-및-누산(multiply-and-accumulate, MAC) 동작들이다. 이러한 MAC 동작들을 효율적으로 달성하기 위해 제안된 하나의 방법은 컴퓨팅연산(computation)이 데이터가 저장된 장소에서 수행되는 메모리-내-컴퓨팅 아키텍처(compute-in-memory architecture)이다. 종래 기술에서, 메모리-내-컴퓨팅 아키텍처를 이용하는 MAC 컴퓨팅 블록은, 아날로그 입력 데이터와 아날로그 가중치 값들의 곱셈 동작을 수행하여 결과적인 아날로그 출력 전류를 발생시키는 뉴럴 네트워크의 시냅스 셀(synapse cell)로서 메모리 셀을 사용한다. 아날로그 도메인(analog domain)에서 메모리 어레이의 비트-라인(bit-line) 상에서의 전류 합산에 의해 누산 동작(accumulation operation)이 수행될 수 있다.
하지만, 종래의 MAC 컴퓨팅 디바이스는 디지털 도메인과 아날로그 도메인 간의 관련된 신호의 변환을 위해 복잡한 높은 정밀도의 (예컨대, 4 비트, 8 비트, 16 비트, 또는 32 비트) 디지털-대-아날로그 및 아날로그-대-디지털 변환기 회로들을 요구하는데, 왜냐하면 컴퓨팅 시스템의 나머지는 디지털 도메인에서 MAC 컴퓨팅 블록과 통신하기 때문이다. 디지털 도메인 데이터는 4 비트, 8 비트, 16 비트, 또는 32 비트 정보만큼 큰 정보로 표현될 수 있다. 또한, 이전의 MAC 컴퓨팅 블록은 높은 정밀도의 (예컨대, 4 비트, 8 비트, 16 비트, 또는 32 비트) 시냅틱 디바이스(synaptic device)를 요구하며, 여기서 4-비트, 8-비트, 16-비트, 또는 32-비트 정보는 단일의 시냅팁 디바이스 내에 저장될 수 있다. 따라서, 메모리-내-컴퓨팅 아키텍처를 사용해 이용되는 MAC 엔진의 효율은, 높은 정밀도의 디지털-대-아날로그 및 아날로그-대-디지털 변환기 회로들 그리고 높은 정밀도의 시냅틱 디바이스들의 가용성(availability)에 의해 크게 제한되었다.
본 발명은 뉴럴 네트워크 컴퓨팅 유닛을 개시한다. 본 발명에 따르면, 뉴럴 네트워크 컴퓨팅 유닛은, 비트 라인과; 복수의 메모리 블록(memory block)들을 갖는 메모리 어레이와, 여기서 각각의 메모리 블록은 하나 또는 하나보다 많은 메모리 셀들을 갖고, 각각의 셀은 비트 라인에 연결되며; 그리고 제어 회로(control circuit)를 포함하고, 제어 회로는, 직렬화된 입력을 순차적으로 메모리 셀들에 적용하여 메모리 셀들의 출력들이 직렬화된 입력에 응답하여 순차적으로 생성되도록 하는 것과, 여기서 출력들 각각은 메모리 셀 내에 저장된 가중치 값(weight value)과 입력의 곱(multiplication)에 대응하며; 그리고 각각이 특정 전류량(current amount)을 갖는 기준 전류 레벨(reference current level)들의 그룹(group)을 설정하여 기준 전류 레벨들의 세트(set)에 대응하는 각각의 출력 전류들을 발생시킬 때의 메모리 셀들을 제어 회로가 제어하도록 하는 것을 수행하도록 구성된다.
일 실시예에서, 제어 회로는 또한, 직렬화된 전압 입력을 순차적으로 메모리 셀들에 적용하여 메모리 셀의 출력 전류들 각각이 전압 입력에 대응하여 순차적으로 생성되도록 하는 것을 수행하도록 구성되고, 여기서 출력 전류는 메모리 셀 내에 저장된 가중치 값과 전압 입력의 곱에 대응한다. 일 실시예에서, 컴퓨팅 유닛은 또한, 비트 라인에서 메모리 셀들의 출력 전류들을 순차적으로 수신하기 위한 감지 회로(sensing circuit)를 포함한다. 일 실시예에서, 컴퓨팅 유닛은 또한, 감지 회로에 결합되는 누산기 회로(accumulator circuit)를 포함하고, 누산기 회로는 써모미터 코드(thermometer code)로 된 수신된 출력 전류 값들을 바이너리 코드(binary code)로 변환하도록 구성된다. 일 실시예에서, 누산기 회로는 또한, 제어 회로에 의해 정의된 비트-시프트 방식(bit-shifted manner)으로, 변환된 값들을 누산하도록 구성된다.
일 실시예에서, 컴퓨팅 유닛은 또한, 공통의 비트 라인에 연결되는 복수의 메모리 셀들을 포함하는 메인 시냅스 블록(main synapse block)을 포함하고, 제어 회로는 또한, 복수의 직렬 입력 데이터에 대응하는 복수의 스트리밍된 전압 입력(streamed voltage input)들을 시냅스 어레이(synapse array) 내의 복수의 셀들 중 각각의 셀들에 직렬로 적용하도록 구성된다. 일 실시예에서, 직렬 입력 데이터의 최상위 비트(most significant bit)는 대응하는 셀에 첫 번째로 입력된다. 일 실시예에서, 뉴럴 네트워크 컴퓨팅 유닛은 최하위 비트(least significant bit)를 완전히 컴퓨팅함이 없이 컴퓨팅연산을 끝낸다. 일 실시예에서, 컴퓨팅 유닛은 또한, 비트 라인에 연결되는 복수의 기준 셀(reference cell)들을 포함하는 기준 시냅스 블록(reference synapse block)을 포함하고, 여기서 셀들은 동일한 또는 상이한 미리정의된 출력 전류를 비트라인에 발생시키도록 프로그래밍되고, 제어 회로는 또한, 복수의 직렬 입력 데이터에 대응하는 복수의 입력 전압들을 선택된 기준 시냅스 어레이 내의 복수의 기준 셀들에 적용하도록 구성된다.
일 실시예에서, 제어 회로는 또한, 제어 회로에 의해 정의된 기준 레벨들에 대응하는 각각의 출력들을 생성하도록 0개, 1개, 또는 다수 개의 기준 셀들을 비활성화하거나 활성화하도록 구성된다. 일 실시예에서, 기준 셀들로부터의 출력 레벨들은 바이너리 가중(binary weight)된다. 일 실시예에서, 감지 회로는 또한, 메모리 블록 중 제1 메모리 블록 내의 메모리 셀의 출력 전류와 메모리 블록 중 제2 메모리 블록 내의 메모리 셀의 출력 전류의 합(sum)을 감지하도록 구성된다.
일 실시예에서, 감지 회로는 또한, (i) 메모리 블록 중 제1 메모리 블록에 적용된 직렬 입력 데이터의 하나의 비트에 대응하는 메모리 셀의 출력 전류와 (ii) 메모리 블록 중 제2 메모리 블록에 적용된 직렬 입력 데이터의 하나의 비트의 구간(duration) 동안 기준 레벨들 각각에 대응하는 기준 셀의 출력 전류의 합을 획득하도록 구성된다. 일 실시예에서, 감지 회로는 또한, 비트 라인에서 합산된 출력 전류들을 획득하는 것과; 합산된 출력 전류 레벨과 특정된 임계 전류 레벨 간의 비교 결과를 생성하는 것과; 비교 결과를 대응하는 바이너리 신호(binary signal)로 변환하는 것을 수행하도록 구성된다. 일 실시예에서, 감지 회로는 또한, (i) 합산된 출력 전류 레벨과 임계 전류 레벨 간의 비교 및 (ii) 결과에 근거하여 비교 결과를 대응하는 바이너리 신호로 변환하는 것의 다수의 반복을 설정하도록 구성된다.
본 발명의 일 실시예에서, 메모리 셀들의 어레이를 포함하는 장치가, 비트 라인과; 각각이 비트 라인에 연결되는 메모리 셀들의 제1 세트와; 각각이 비트 라인에 연결되는 메모리 셀들의 제2 세트와; 제어 회로와; 제어 회로를 메모리 셀들의 제1 세트에 연결하는 제어 라인들의 제1 세트와, 여기서 제어 회로는, 전압 입력 데이터를 직렬 포맷(serial format)으로 메모리 셀들의 제1 세트에 순차적으로 적용하여 출력 전류들이 전압 입력 데이터에 응답하여 순차적으로 생성되도록 하는 것을 수행하도록 구성되고, 여기서 출력 전류들은 각각의 메모리 셀의 가중치들과 전압 입력 데이터의 곱들에 대응하며; 제어 회로를 메모리 셀들의 제2 세트에 연결하는 제어 라인들의 제2 세트와, 여기서 제어 회로는, 각각이 특정 전류량을 갖는 기준 전류 레벨들의 그룹을 설정하여 기준 전류 레벨들의 그룹에 대응하는 각각의 출력 전류들을 발생시키도록 메모리 셀들의 제2 세트를 제어 회로가 제어하게 하는 것을 수행하도록 구성되고; 비트 라인에서 메모리 셀들의 제1 세트 및 제2 세트로부터 출력 전류들을 수신하기 위한 감지 회로를 포함한다.
일 실시예에서, 메모리 셀은, 특정된 특정 출력 전류를 생성하도록 각각이 프로그래밍된, 플래시 메모리(Flash memory)이거나, 저항성 변화 메모리(resistive change memory)이거나, FeFET 메모리이거나, 또는 가중치 메모리(weight memory)를 갖는 로직 트랜지스터(logic transistor)이다. 일 실시예에서, 장치는 또한, 감지 회로에 결합되는 누산기 회로를 포함하고, 여기서 누산기 회로는 제어 회로에 의해 정의된 비트-시프트 방식으로 감지 회로로부터 프로세싱된 신호 값들을 수신하도록 구성된다. 일 실시예에서, 감지 회로는 또한, 비트 라인에서 출력 전류들 중 각각의 출력 전류를 직렬로 수신하여 미리정의된 임계치와 비교하도록 구성된다. 일 실시예에서, 누산기 회로는 또한, 수신된 신호 값들을 써모미터 코드로부터 바이너리 코드로 변환하는 것을 수행하도록 구성되고, 제어 회로에 의해 정의된 비트-시프트 방식으로, 변환된 값을 누산한다.
본 발명의 특징들은 도면들에 관한 다음의 설명으로부터 본 발명의 기술분야에서 숙련된 자들에게 명백하게 될 것이다. 도면들이 단지 본 발명의 전형적인 실시예들을 도시한 것이고 따라서 범위에 있어 제한하는 것으로 고려돼서는 안됨을 이해하면서, 본 발명은 수반되는 도면들의 사용을 통해 추가적인 구체성 및 세부사항으로 설명될 것이고, 도면들은 다음과 같다:
도 1은 본 발명에 따른 뉴럴 네트워크 컴퓨팅 유닛의 일 실시예의 블록도이다.
도 2a 내지 도 2h는 다양한 메모리 셀들을 사용하는 본 발명의 실시예에 따른 예시적인 시냅스 셀들의 도면들을 보여준다.
도 3은 본 발명의 실시예에 따른 시냅스 메모리 어레이의 단순화된 블록도이다.
도 4는 본 발명의 일 실시예에 따른 도 1의 컴퓨팅 회로의 동작을 예시하는 타이밍도(timing diagram)이다.
도 5는 본 발명에 따른 직렬화된 감지 동작들을 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 6은 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트에 비교하는 프로세스의 일 실시예를 설명한다.
도 7은 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다.
도 8은 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다.
도 9는 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다.
도 1은 본 발명에 따른 뉴럴 네트워크 컴퓨팅 유닛의 일 실시예의 블록도이다. 컴퓨팅 유닛(100)은 제어기(110), 메인 시냅스 어레이(120), 기준 시냅스 어레이(140), 감지 회로(140), 및 누산기 회로(150)를 포함한다.
제어기(110)는 메인 시냅스 어레이(120), 기준 시냅스 어레이(140), 감지 회로(140), 및 누산기 회로(150)와 통신한다. 메인 시냅스 어레이(120)는 특정 파라미터 값을 전적으로 나타내기 위해 단일의 또는 다수의 시냅스 셀들을 포함할 수 있다. 기준 시냅스 어레이(130)는 특정 기준 값을 전적으로 나타내기 위해 단일의 또는 다수의 기준 셀들로 구성될 수 있다. 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130)는 직렬화된 디지털 입력 시퀀스 신호(serialized digital input sequence signal)들을 제어기(110)로부터 수신할 수 있다. 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130)로부터의 입력 시퀀스 신호들에 대응하는 출력들이 감지 회로(140)에 연결된 공유된 비트 라인(Bit Line, BL)에서 누산될 수 있다.
감지 회로(140)는 제어기(110)에 의해 교정(calibrate)되는 하나 또는 하나보다 많은 임계 레벨들을 적용하도록 구성된다. 감지 회로(140)는 비트라인(BL)으로부터, 직렬화된 신호들을 순차적으로 수신하고, 제어기(110)로부터 구성된 임계 레벨을 사용하여, 직렬화된 출력(Serialized Output, SO) 시퀀스를 생성한다. 누산기 회로(150)는 감지 회로(140)로부터, 직렬화된 출력(SO) 값을 수신하고, 이러한 값들을 제어기(110)로부터의 다른 제어 신호에 의해 구성된 비트-시프트 방식으로 출력 노드(output node)(AO)에서 누산한다.
추가적으로, 제어기(120)는 핵심 하위블록들을 포함할 수 있는데, 예컨대, 레지스터, 데이터 메모리, 코드 메모리, 1회-프로그래밍가능 혹은 판독-전용 혹은 다른 비휘발성 메모리, 타이밍 회로, 또는 디지털 프로세싱 회로를 포함할 수 있다. 레지스터는 제어기(120)가 의도된 동작을 수행하도록 하기 위한 핵심 구성을 저장할 수 있다. 데이터 메모리는 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130)에 제공될 디지털 입력 데이터를 저장할 수 있다. 코드 메모리는 제어기(110)의 동작 시퀀스를 저장하도록 구성된다. 1회-프로그래밍가능 혹은 판독-전용 혹은 다른 비휘발성 메모리는 감지 회로(140)의 기준 전류 레벨을 저장할 수 있고, 또한, 입력 디지털 시퀀스 신호(예컨대, MSB 우선, CSB 우선, 또는 LSB 우선), 파라미터 선택 시퀀스 신호(예컨대, MSB 우선, CSB 우선, 또는 LSB 우선), 또는 기준 디지털 시퀀스 신호(예컨대, 낮은 레벨 우선, 또는 중간 레벨 우선, 또는 높은 레벨 우선)의 직렬화 시퀀스 순서 또는 타이밍 정보를 저장하도록 구성될 수 있다. MSB 입력 디지털 신호 및 MSB 파라미터 선택 신호가 첫 번째로 입력될 수 있는데, 왜냐하면 MSB 데이터로부터의 결과가 전체 결과에 가장 크게 기여하기 때문이며, 이것은 출력의 정확도가 더 높은 성능을 위해 양보될 수 있는 경우에 제어기로 하여금 LSB 데이터로 전체 동작 시퀀스 신호들을 끝내기 전에 디지털 시퀀스 신호들의 전송을 중단할 수 있게 한다. LSB 데이터로 동작들을 끝내기 전에 입력 시퀀스가 중단된 경우, AO 노드 상의 중간 누산기 출력 신호는 컴퓨팅 유닛으로부터의 대략적으로 충분히 양호한 전체 출력을 나타낼 수 있다.
타이밍 회로는 특정된 타이밍(예컨대, 도 4에서 보여지는 동작의 타이밍)에 따라 동작 시퀀스를 점검할 수 있고 핵심 신호 펄스들을 변조할 수 있다. 디지털 프로세싱 회로는, 레지스터, 데이터 혹은 코드 메모리, 1회-프로그래밍가능 혹은 판독-전용 혹은 다른 비휘발성 메모리, 또는 타이밍 회로로부터 정보를 검색할 수 있고, 에러 검출 혹은 정정, 압축 혹은 압축해제, 암호화 혹은 암호해독화, 패턴 검출 혹은 카운팅(counting), 필터링(filtering), 변조, 불린 로직 동작(Boolean logic operation), 등의 능력을 가질 수 있어, 제어기(110)는 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130)에 대한 비트-직렬화 디지털 시퀀스 신호(bit-serialized digital sequence signal)들, 그리고 감지 회로(140) 및 누산기 회로(150)에 대한 제어 신호들을 탄력적으로 그리고 효율적으로 가질 수 있게 된다. 제어기(110)의 이러한 핵심 하위블록들의 정의 및 사용은 본 발명의 기술분야에서 숙련된 자들에게 잘 알려져 있고, 본 명세서에서 설명되는 특정 설명 또는 형태들로 한정돼서는 안된다.
비록 단일의 비트라인(BL)이 컴퓨팅 유닛(100) 내의 회로 요소들을 관련시키기 위해 단일의 라인으로서 정의되지만, 다수의 세로열들을 동시에 컴퓨팅하기 위해 복수의 비트라인들(BL)이 병렬로 연결될 수 있다. 따라서, 각각의 세로열은 제어기(110)로부터의 공통의 직렬화된 디지털 입력 및 기준 시퀀스 신호들 그리고 제어 신호들을 공유할 수 있다. 반면, BL 상의 신호는 정보의 양의 값 또는 음의 값을 나타낼 수 있다. 도 1에서는 단일의 비트 라인(즉, BL)이 도시될지라도, 시냅스 어레이는 두 개의 상이한 출력 비트 라인들(즉, BL_P 및 BL_N)을 가질 수 있어, 하나의 라인(즉, BL_P)이 양의 정보를 운반하게 되고 다른 라인(BL_N)이 음의 정보를 운반하게 된다. 이러한 경우에, 감지 회로는 2-라인 신호들 간의 차이를 입력으로서 취한다.
또한, 도 1에서는 메인 시냅스 어레이(120)의 단일의 세트가 도시될지라도, 메인 시냅스 어레이(120)의 다수의 세트들이 병렬로 연결될 수 있어 다수의 파라미터들을 나타내게 되고 공유된 비트 라인(BL)에서 다수의 세트들을 동시에 누산하게 된다. 따라서, 메인 시냅스 어레이들(120)의 각각의 세트는 직렬화된 디지털 입력 시퀀스 신호들을 각각 가질 수 있다.
더욱이, 메인 시냅스 어레이 및 기준 시냅스 어레이는 제어기(110)로부터의 다수의 입력 신호 라인들을 가질 수 있어 입력 데이터의 부호 정보가 크기 정보와 함께 시냅스 어레이들로 운반될 수 있게 된다. 일 실시예에서, 메인 시냅스 어레이(120) 내의 셀들의 세트는 제어기(110)로부터 복수의 입력 신호들을 순차적으로 수신한다. 제어기(120)는 n-비트 (바이너리) 입력 데이터를 메인 시냅스 어레이(120) 내의 시냅스 메모리 셀들 각각에 순차적으로 전송하여 대응하는 셀이 셀의 저장된 가중치가 곱해진 입력의 함수에 대응하는 출력 전류 신호를 발생시키게 된다. n-비트 입력 신호를 메인 시냅스 어레이(120) 내의 각각의 선택된 셀에 공급하면서, 제어기(120)는 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130) 내의 셀들의 동작들을 동기화시킨다. 제어기(110)는 복수의 기준 시퀀스 신호들을 기준 시냅스 어레이(130) 내의 기준 셀들의 세트에 동시에 전송하는데, 여기서 신호들은 각각의 단계마다 기준 시냅스 전류 레벨을 설정하기 위해 0개, 1개, 또는 다수 개의 대응하는 기준 셀들을 활성화한다.
n-비트 입력들의 하나의 비트가 메인 시냅스 어레이(120) 내의 선택된 셀에 공급되고 있는 동안 복수의 기준 시퀀스 신호들을 기준 시냅스 어레이(130)에 전송함으로써 다수의 기준 시냅스 전류 레벨들이 순차적으로 적용된다. 제어기(120)는, 입력의 n-비트들 중 하나가 메인 시냅스 어레이(120) 내의 선택된 셀에 의해 프로세싱되는 동안 각각의 기준 시냅스 레벨이 순차적으로 한번 조정되게 된다는 점에서, 기준 시냅스 어레이(130) 내의 셀들의 세트를 제어한다.
도 2a 내지 도 2h는 로직 플래시, 로직 NAND 플래시, NAND 플래시, NOR 플래시, 트랜지스터를 갖는 저항성 변화 메모리, 트랜지스터가 없는 저항성 변화 메모리, 강유전성 FET(Ferroelectric FET, FeFET) 메모리, 및 가중치 메모리(W)를 갖는 로직 트랜지스터들과 같은 다양한 메모리 셀들을 사용하는 본 발명의 실시예에 따른 예시적인 시냅스 셀들의 도면들을 보여준다. 각각의 시냅스 셀은, (플래시 메모리들에 대해서는) 임계 전압, (저항성 변화 메모리에 대해서는) 저항, (FeFET 메모리들에 대해서는) 분극, 또는 (가중치 메모리를 갖는 로직 트랜지스터들에 대해서는) 컨덕턴스(conductance)의 형태로서의 메모리 내의 저장된 가중치 값 및 제어 라인 입력 신호(즉, CG 또는 CGx)에 따라, 적절한 전류 레벨(즉, Cur_W)을 비트 라인(BL)으로 흘릴 수 있다.
도 2a는 전류 레벨(Cur_W)에서 프로그래밍된 로직 플래시 메모리를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인들(CG1 및 CG2)의 쌍(pair)을 통해 적용된다. 가중치 파라미터는 로직 플래시 메모리 셀 내에 저장된다. 출력 전류(Cur_W)는 BL에 공급된다.
도 2b는 전류 레벨(Cur_W)에서 프로그래밍된 로직 NAND 플래시를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 다수의 신호 라인 쌍들 가운데 하나의 선택된 쌍(즉, CG1/2 또는 CG3/4 중 어느 하나의 쌍)을 통해 적용된다. 가중치 파라미터는 선택된 로직 NAND 플래시 메모리 셀 내에 저장된다. 출력 전류(Cur_W)는 다른 모든 선택되지 않은 셀들 및 SG1/2에 연결된 상단/하단 스위칭 트랜지스터(switching transistor)들을 턴온(turning on)시킴으로써 BL에 공급된다.
도 2c는 전류 레벨(Cur_W)에서 프로그래밍된 NAND 플래시를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 다수의 신호 라인들(CG1 ~ CG4) 가운데 하나의 선택된 신호 라인을 통해 적용된다. 가중치 파라미터는 선택된 NAND 플래시 메모리 셀 내에 저장된다. 출력 전류(Cur_W)는 다른 모든 선택되지 않은 셀들 및 SG1/2에 연결된 상단/하단 스위칭 트랜지스터들을 턴온시킴으로써 BL에 공급된다.
도 2d는 전류 레벨(Cur_W)에서 프로그래밍된 NOR 플래시를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인(CG)을 통해 적용된다. 가중치 파라미터는 NOR 플래시 메모리 셀 내에 저장된다. 출력 전류(Cur_W)는 SG에 연결된 스위칭 트랜지스터를 터닝(turning)시킴으로써 BL에 공급된다.
도 2e는 전류 레벨(Cur_W)에서 프로그래밍된 트랜지스터를 갖는 저항성 변화 메모리를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인(CG)을 통해 적용된다. 가중치 파라미터는 가변 저항(R_w) 내에 저장된다. 출력 전류(Cur_W)는 CG에 연결된 스위칭 트랜지스터를 터닝시킴으로써 BL에 공급된다.
도 2f는 전류 레벨(Cur_W)에서 프로그래밍된 트랜지스터가 없는 저항성 변화 메모리를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인(CG)을 통해 적용된다. 가중치 파라미터는 가변 저항(R_w) 내에 저장된다. 출력 전류(Cur_W)는 BL에 공급된다.
도 2g는 전류 레벨(Cur_W)에서 프로그래밍된 FeFET 메모리를 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인(CG)을 통해 적용된다. 가중치 파라미터는 FeFET 메모리 내에 저장된다. 출력 전류(Cur_W)는 BL에 공급된다.
도 2h는 전류 레벨(Cur_W)에서 프로그래밍된 가중치 메모리(W)를 갖는 로직 트랜지스터들을 사용하는 시냅스 셀을 보여준다. 전류 레벨은 입력 신호와 가중치 파라미터의 곱을 나타낸다. 여기서, 입력 신호는 신호 라인(CG)을 통해 적용된다. 가중치 파라미터는 가중치 메모리(W) 내에 저장된다. 출력 전류(Cur_W)는 CG에 연결된 스위칭 트랜지스터를 터닝시킴으로써 BL에 공급된다.
도시된 시냅스 셀에 추가하여, 뉴럴 네트워크의 가중치 파라미터들에 대응하는 목표 전류 레벨들로 신중하게 프로그래밍된 시냅스 셀들의 다른 타입들이 이용될 수 있다.
도 3은 본 발명의 실시예에 따른 시냅스 메모리 어레이의 단순화된 블록도이다.
일 실시예에서, 메인 시냅스 어레이(120)는 네 개의 시냅스 셀들(Wa, Wb, Wc, 및 Wd)을 포함한다. 이들은 공통의 비트라인(BL)을 통해 연결되고, 결합된 신호 라인들(CG_Wa, CG_Wb, CG_Wc, CG_Wd)을 통해 입력 시퀀스 신호들을 각각 수신한다. 더욱이, 기준 시냅스 어레이(130)는 비트라인(BL)을 통해 연결된 여섯 개의 기준 셀들(R0, R1, R2, R3, R4 및 R5)을 포함하고, 결합된 신호 라인들(CG_R0, CG_R1, CG_R2, CG_R3, CG_R4 및 CG_R5)을 통해 기준 시퀀스 신호들을 각각 수신한다. 감지 증폭기(140)가 BL에 연결되고, 누산기(150)에 연결된 라인에 출력(SO)을 발생시킨다. 누산기(150)는 직렬화된 부분 합들을 누산하여 누산기 출력(Accumulator Output, AO)을 발생시키도록 구성된다.
어레이들(120, 130)의 수는 하나보다 많을 수 있고 가로행들 및 세로열들을 따라 확장될 수 있음에 유의해야 한다. 어레이들(120, 130) 중 어느 하나 또는 양쪽 모두는 다양한 특정 기술적 필요들에 따라 가로행들 및 세로열들에서 단일의 형태 또는 복수의 형태로 정렬될 수 있다. 여기서, 메인 시냅스 어레이(120)는 네 개의 시냅스 셀들(Wa, Wb, Wc 및 Wd)을 포함하고, 기준 시냅스 어레이(130)는 여섯 개의 시냅스 셀들(R0, R1, R2, R3, R4 및 R5)을 포함한다. 비록 도 3에서의 어레이(120) 및 어레이(130)가 네 개의 셀들 및 여섯 개의 셀들을 각각 갖는 것으로서 도시되지만, 이들은 가중치 값들을 저장할 수 있는 셀의 용량 및 어레이들의 이용가능한 영역에 따라 더 많은 또는 더 적은 본원에서 설명되는 메모리 셀들로 구성될 수 있다.
양쪽 어레이들(120, 130) 내의 시냅스 셀들은 직렬로 연결되고, 공통의 비트 라인(BL)을 공유한다. 어레이들(120, 130) 내의 각각의 시냅틱 셀은 고정된 또는 조정가능한 시냅틱 가중치를 저장할 수 있고, 해당 가중치가 곱해진 입력의 함수인 출력을 발생시킬 수 있다. 더욱이, 본 발명의 일 실시예에서, 신호 라인들(즉, CG_Wa, CG_Wb, CG_Wc, CG_Wd)을 통해 복수의 셀들에 적용된 입력들 각각은 특정된 시간 간격을 갖는다. 따라서, 입력들에 대응하는 출력 전류들은 특정된 시간 간격에서 비트라인(BL) 상에서 각각 흐를 것이다.
메인 시냅스 어레이(120) 내의 시냅스 셀들의 총 수는 각각의 셀의 용량에 따라 조정될 수 있다. 예컨대, 메인 시냅스 어레이(120)에 8-비트 가중치가 할당된 경우, 그리고 만약 이용가능한 메모리 셀이 네 개의 로직 상태들을 갖는 2-비트 정보를 저장할 수 있다면, 메인 시냅스 어레이(120)는 관련된 곱셈 동작을 수행하기 위해 총 4개의 메모리 셀들을 필요로 할 수 있다. 하지만, 메인 시냅스 어레이(120)는 만약 셀이 16개의 로직 상태들을 갖는 정보의 네 개의 비트들을 저장할 수 있다면 두 개의 메모리 셀들을 필요로 할 수 있다. 또한, 만약 각각의 셀이 2개의 로직 상태들을 갖는 1-비트 정보를 저장한다면 여덟 개의 시냅틱 셀들이 요구된다.
도 3은 8-비트 가중치가 제공되는 경우를 보여주고, 여기서 각각의 셀은 2-비트 정보를 저장하도록 구성되며, 따라서 관련된 대응하는 곱셈을 수행하기 위해 총 4개의 셀들이 메인 시냅스 어레이(120) 내에 정렬된다. 일 실시예에서, 기준 시냅스 어레이(130)는 기준 시냅스 셀들(R0, R1, R2, R3, R4, 및 R5)의 그룹을 포함한다. 이들은 메인 시냅스 어레이(120)의 시냅스 셀들과 동일할 수 있거나 유사할 수 있다. 이러한 기준 셀들은 기준 신호 라인들(즉, CG_R0 내지 CG_R5)에 각각 결합되고, 공통의 비트라인(BL)을 공유한다. 각각의 기준 시냅스 셀은 출력 라인(BL) 상에 특정 기준 전류를 출력하는데, 왜냐하면 이들 각각은 대응하는 신호 라인을 통해 전압을 수신할 때 자기 자신의 특정 시냅틱 가중치들을 갖기 때문이다. 여기서, 기준 시냅스 어레이(130) 내의 여섯 개의 기준 셀들 각각은 증분적으로 상이한 전류들을 발생시키도록 설정될 수 있다. 예컨대, 스트링(string)에서 상단으로부터 하단으로의 순서로, 활성화된 기준 셀(R5)은 6 μA를 출력하도록 구성되고; 활성화된 기준 셀(R4)은 5 μA를 출력할 수 있고; 활성화된 기준 셀(R3)은 4 μA를 출력할 수 있고; 활성화된 기준 셀(R2)은 3 μA를 출력할 수 있고; 활성화된 기준 셀(R1)은 2 μA를 출력할 수 있고; 활성화된 기준 셀(R0)은 1 μA를 출력할 수 있다.
감지 회로(140)는 비트라인(BL)에서의 감지된 출력 전류가 임계값보다 더 큰지 또는 더 작은 지를 결정할 수 있고, 여기서 임계값은 제어기(110)에 의한 미리정의된 또는 교정된 값이다. 일 실시예에서, 메인 시냅스 어레이(120) 내의 시냅스 메모리 셀들과 기준 시냅스 어레이(130) 내의 기준 메모리 셀들 간의 상호작용들과 관련하여, 제어기(110)는 다음과 같은 것을 수행하도록 구성될 수 있다:
1. 활성화할 메인 시냅스 어레이(120) 내의 시냅스 메모리 셀들 간의 동작들의 순차적 순서를 선택하는 것.
2. 기준 시냅스 레벨들(0개, 1개, 또는 1개보다 많은 기준 시냅스 셀들에 의해 획득될 출력 전류 세트 값들)의 세트를 정의하는 것.
3. 선택적으로 결합된 기준 셀들이 기준 레벨에서 정의된 동일한 전류인 출력 전류를 동시에 발생시키게 되도록 어레이(130) 내의 기준 셀을 선택적으로 동작시키는 것.
4. 메인 시냅스 어레이(120) 내의 선택된 시냅스 메모리 셀이 프로세싱 중인 동안 기준 셀들의 동작들을 제어하는 것.
5. 기준 시냅스 어레이(130) 내에서 기준 메모리 셀들 중 어떤 것도 활성화하지 않음으로써, 또는 일부 기준 셀(들)을 선택적으로 활성화함으로써, 또는 모든 기준 셀들을 활성화함으로써, 기준 레벨들에 의해 설정되는 비트 라인(BL)에서의 상이한 전류들 각각을 추구하는 것.
다른 실시예에서, 저장된 미리설정된 순서들에 근거하여, 제어기(110)는 이러한 메인 시냅스 어레이(120) 및 기준 시냅스 어레이(130)에 순차적인 동작 입력 및 기준 신호들을 미리결정된 순서로 하나씩 제공할 수 있다. 이러한 셀들의 이와 같은 순차적 활성화는 미리결정되거나 사용자에 의해 재설정될 수 있다. 신호 라인 상에 전압 입력을 선택적으로 적용함으로써, 제어기(110)는 메인 시냅스 셀 내에 저장된 파라미터가 곱해진 입력의 함수인 출력을 발생시키도록, 선택된 메인 시냅스 셀(예컨대, 가중치 A)을 제어한다. 제어기(110)는 기준 셀들의 세트의 활성화를 선택된 가중치 셀의 동작에 동기화시킨다. 즉, 제어기(110)는, 선택된 시냅틱 셀이 신호 라인들을 통해 적용된 입력 전압에 대응하는 출력 전류를 발생시키는 동안, 기준 셀들(R0 내지 R5)의 세트의 순차적 활성화를 단계별로 가능하게 할 수 있다. 다수의 시냅스 가로행들이 함께 활성화되어 BL에서 누산된 전류를 흘릴 수 있다.
도 4는 본 발명의 일 실시예에 따른 도 1의 컴퓨팅 회로의 동작을 예시하는 타이밍도이다.
여기서, 도면의 상단으로부터 네 번째 가로행까지는 메인 시냅스 어레이(120) 내의 셀들(Wa, Wb, Wc 및 Wd)에 대해 3-비트 입력 신호를 운반하는 신호 라인들(CG_Wd, CG_Wc, CG_Wb, CG_Wa)을 표시한다. 3-디지트 입력 값은 최상위 비트(Most Significant Bit, MSB), 중앙 유효 비트(Center Significant Bit, CSB), 최하위 비트(Least Significant Bit, LSB)에 의해 표현된다. 또한, 도면의 5번째 가로행("CG_R5"로 표시됨) 내지 하단("CG_R0"으로 표시됨)의 여섯 개의 가로행들 각각은 신호 라인들(CG_R5, CG_R4, CG_R3, CG_R2, CG_R1, CG_R0)을 통해 기준 셀들(R5, R4, R3, R2, R1, R0)의 세트에 각각 입력되는 직렬 바이너리 입력 데이터를 보여준다.
일 실시예에서, 제어기(110)는, 선택된 셀들(Wd, Wc, Wb, 및 Wa) 중 하나가 셀 내에 저장된 가중치가 곱해진 3-비트 입력의 함수인 대응하는 출력 전류를 발생시키기 위해 3-비트 입력 신호를 수신하는 동안, 비트라인(BL)에서 미리정의된 기준 시냅스 레벨을 발생시키도록 기준 시냅스 셀들(R0, R1, R2, R3, R4, 및 R5) 중 0개 또는 1개 이상을 순차적으로 활성화한다.
더 구체적으로, 기간(T1) 동안, 제어기(110)는 셀(Wd) 내에 저장된 가중치가 곱해진 바이너리 입력의 전류를 비트라인을 통해 발생시키기 위해 셀(Wd)에 MSB(IN_MSB)를 점유하는 바이너리 입력을 전송한다. 기간(T2) 동안, 제어기(110)는 CSB(IN_CSB)를 점유하는 바이너리 입력을 신호 라인(CG_Wd)을 통해 셀(Wd)에 전송하고, 결과로서, 셀(Wd)은 셀(Wd) 내에 저장된 가중치가 곱해진 바이너리 입력의 전류를 비트라인을 통해 발생시킨다. 기간(T3) 동안, 제어기(110)는 LSB(IN_LSB)를 점유하는 바이너리 입력을 신호 라인(CG_Wd)을 통해 셀(Wd)에 전송하고, 결과로서, 셀(Wd)은 셀(Wd) 내에 저장된 가중치가 곱해진 바이너리 입력의 전류를 비트라인을 통해 발생시킨다. 시냅틱 셀(Wc)로의 3-비트 입력 신호의 전송이 기간(T4 내지 T6)에 걸쳐 수행되고, 셀(Wb)로의 3-비트 입력 신호의 전송이 기간(T7 내지 T9)에 걸쳐 수행되고, 시냅틱 셀(Wa)로의 3-비트 입력 신호의 전송이 기간(T10 내지 T12)에 걸쳐 수행된다. 도 4에서 도시되는 바와 같이, 셀들(Wa, Wb 및 Wc)에 대해 3-비트 입력 신호를 보내는 전송은 설명된 바와 같은 Wd로의 3-비트 입력 신호의 전송과 유사하게 수행된다.
도 4에서 보여지는 바와 같이, 기간(T1)이 t1 내지 t7의 총 7개의 하위-기간(sub-time period)들로 분할되는 경우, 제어기(110)는 7개의 하위-기간들 각각에 대응하는 셀들(R0, R1, R2, R3, R4, 및 R5)의 세트 중 0개, 1개, 또는 다수 개의 셀의 세트의 동작을 지시(direct)할 수 있다. 달리 말하면, 제어기(110)는, 3-비트 입력 신호에 의해 활성화되는 셀들(Wd, Wc, Wb, 및 Wa) 중 하나인 선택된 셀로부터의 출력 전류에 더해지게 되는 비트 라인(BL)에서의 전류의 미리결정된 기준 시냅스 레벨을 설정하기 위해 신호 1을 갖는 셀(들)이 집합적으로 활성화되도록, 셀들(R5, R4, R3, R2, R1 및 R0)의 세트에 신호들의 세트를 전송할 수 있다. 셀들(R5, R4, R3, R2, R1 및 R0)에 대한 바이너리 시퀀스 입력 데이터에서, "1"은 활성화 신호를 표시하고, "0"은 대응하는 셀에 대한 아이들 신호(idle signal)를 표시한다.
기간(t1) 동안, 제어기(110)는 (IN_MSB 입력 신호를 공급함으로써) 시냅틱 셀(Wd)을 동작시키고 (활성화 1 데이터 신호를 공급함으로써) 기준 셀(R5)을 동작시켜 출력을 행하도록 한다. 따라서, 이러한 셀들의 출력 전류들의 합이 시간(t1) 동안 발생된다. 그리고, 기간들(t2 내지 t7) 각각 동안, 제어기(110)는 IN-MSB 입력 신호를 Wd 시냅스 셀에 계속 전송하고, 셀들(R4, R3, R2, R1, R0) 및 0개의 셀로 하여금 대응하는 출력 전류들을 출력하도록 순차적으로 동작할 수 있게 한다.
기간(T2) 동안, 제어기(110)는 IN_CSB 신호를 셀(Wd)에 전송하고, 기간(T2)을 형성하는 기간(t8 내지 t14) 동안 입력 신호 1을 R5 내지 R0 셀들 각각에 순차적으로 전송하고 셀들 모두에 '0'을 전송한다. 기간(T3) 동안, 제어기(110)는 IN_LSB 신호를 셀(Wd)에 전송하고, 기간(T3)을 형성하는 기간(t15 내지 t21) 동안 입력 신호 1을 R5 내지 R0 셀들 각각에 순차적으로 전송하고 셀들 모두에 '0'을 전송한다. 그리고, 나머지 기간들(T4 내지 T12) 동안 제어기(110)에 대해, 기간들(T1 내지 T3) 동안 수행된 제어기의 동작의 동일한 패턴이 나머지 셀들(Wc, Wb, 및 Wa)에 적용된다.
도 5는 본 발명에 따른 직렬화된 감지 동작들을 위한 프로세스의 일 실시예를 설명하는 흐름도이다. 복수의 메인 시냅스 어레이들(120) 및 기준 시냅스 어레이(130)가 뉴럴 네트워크 컴퓨팅 유닛(100) 내의 복수의 가로행들 및 세로열들에서 정렬된다는 것에 유의하기 바란다. 메인 시냅스 어레이 및 기준 시냅스 어레이 내의 셀들의 수는 뉴럴 네트워크 컴퓨팅 유닛(100)(미도시)과 관련된 인터페이스(interface)에 의해 사용자에 의하거나 또는 제어기(110)에 의하여 미리설정되거나 결정된다는 것에 또한 유의하기 바란다.
단계(501)에서, 감지 회로(140)는 감지/정정 동작을 시작하기 위해 "온(ON)" 모드로 설정된다. 단계(503)에서, 메인 시냅스 레벨은 메인 시냅스 어레이(120) 내의 대응하는 시냅스 메모리 셀에 의해 획득될 특정 출력 전류를 지칭한다. 이것을 수신하는 경우, 감지 회로(140)는 선택된 셀 내에 저장된 가중치가 곱해진 입력(시냅스 셀에 적용된 n-비트 입력 중 하나)의 함수에 대응하는 출력 전류의 양을 식별할 수 있다.
단계(505)에서, 제어기(110)는 기준 시냅스 레벨들(0개, 1개, 또는 1개보다 많은 기준 셀들에 의해 획득될 출력 전류 값들의 세트)을 설정할 수 있다. 시냅스 레벨들에 의해 특정된 출력 전류들을 획득하기 위해, 제어기(110)는 기준 시냅스 어레이(130) 내의 0개, 1개, 또는 1개보다 많은 기준 셀의 결합을 설정할 수 있다. 설정된 출력 전류가 기준 셀들을 결합함으로써 획득되는 경우, 제어기(110)는 기준 셀들의 이상적인 수를 계산할 수 있다. 예컨대, 메인 시냅스 어레이(120) 내의 시냅스 셀들 내에 저장된 가중치들이 곱해진 입력(예를 들어, 3-비트 입력)의 함수인 3-비트 포맷을 갖는 출력을 생성하기 위해서, 제어기(110)는 프로그래밍된 방정식(예컨대, 총 기준 시냅스 레벨들 S = 2^(3)-1, 이것은 7임)에 따라 총 일곱 개의 기준 시냅스 레벨들(7개의 출력 전류 세트 값들)을 설정할 수 있고 관련된 동작들을 수행할 수 있다. (1) 감지 단계들을 수행하기 위한 횟수 및 (2) 기준 시냅스 레벨들의 수를 결정할 때의 제어기(110)의 동작은 미리정의된 프로그램 코드를 통해 구현될 수 있거나, 또는 필요에 따라 사용자에 의해 수동으로 입력될 수 있다.
단계(507)에서, 제어기(120)는 (1) 기준 시냅스 어레이들(130)로부터의 출력 전류와 (2) 메인 시냅스 어레이(120)로부터의 출력 전류를 결합하기 위해 어레이들(120, 130) 내의 셀들을 동작시킬 수 있다. 달리 말하면, 특정된 기준 시냅스 레벨에 의해 정의된 출력 전류는 비트 라인(BL)에서 메인 시냅스 어레이(120) 내의 선택된 시냅스 메모리 셀로부터의 출력 전류에 더해지게 된다.
단계(509)에서, 감지 회로(140)는 특정된 시간(T)에 측정된 더해진 출력 전류를 미리설정된 임계 전류 값과 비교할 수 있다. 감지 회로(140)는 임계 전류 값을 저장할 수 있거나, 또는 사용자로 하여금 새로운 임계 전류 값을 입력할 수 있게 하거나 미리설정된 임계 전류 값들을 재설정할 수 있게 한다.
단계(511)에서, 출력 전류의 측정된 합이 미리설정된 임계값보다 더 크다고 발견되면, 감지 회로(140)는 이러한 비교 결과를 H와 같은 바이너리 신호로서 기록(record)할 수 있다. 반면, 단계(513)에서, 출력 전류의 측정된 합이 미리설정된 임계값보다 더 크지 않다고 발견되면, 제어기(120)는 이러한 비교 결과를 L과 같은 바이너리 신호로서 기록한다.
단계(515)에서, 감지 회로(140)는 모든 미리정의된 기준 시냅스 레벨들이 더하는 단계(507) 및 비교하는 단계(509)를 거쳤는지 여부를 점검할 수 있다. 도 4에서 설명된 바와 같이, 예컨대, 셀(R5)과 관련된 기준 시냅스 레벨에 대한 더하고/비교하는 단계들이 끝난 경우, 이러한 단계들은 셀(R4)과 관련된 기준 시냅스 레벨에 적용되게 되고, 그 다음에 셀들(R3, R2, R1, R0) 및 0개의 셀에 대해 적용되게 된다.
단계(517)에서는, 비교 동작이 모든 미리설정된 기준 시냅스 레벨들에 적용되지 않았다고 발견되는 경우, 감지 회로(140)가 단계들(507 내지 515)의 동작들을 반복하기 전의 진행을 위해 기준 셀들의 상이한 세트를 활성화함으로써 기준 시냅스 레벨을 조정한다. 단계(519)는 모든 미리설정된 기준 시냅스 레벨들의 동작들이 완료되는 경우이다.
단계(519)에서는, 선택된 메인 시냅스 셀들의 모든 미리설정된 동작들이 완료되었다. 하지만, 관련된 셀들에 대한 더하고, 비교하고, 되풀이하는 단계들이, 시냅스 셀(Wd)이 3-비트 입력 데이터의 하나의 비트(MSB)를 프로세싱할 때, 도 4에서의 기간(예컨대, T1) 동안 구현된다는 것에 유의해야 한다. 따라서, 전체 단계들(501 내지 519)은 도 4에서 보여지는 바와 같이 기간들(T2 내지 T12) 각각에 적용될 수 있다.
도 6은 도 5에서 보여지는 바와 같은 직렬화된 전류 레벨 감지 방식의 간단한 예를 보여준다. 일 실시예에서, 감지 회로(140)는 도 4에서 언급된 바와 같이 미리설정된 기간(즉, t1, t2, t3,..) 동안 (i) 메인 시냅스 어레이(120) 내의 선택된 셀들 중 하나로부터의 전류와 (ii) 기준 시냅스 어레이(130) 내의 0개, 1개, 또는 다수 개의 기준 셀들로부터의 전류의 합을 획득하도록 구성될 수 있다. 감지 회로(140)는 기준 시냅스 레벨들에 따라 합산-및-비교 단계를 구현할 수 있다. 제어기(110)는 또한, 본 발명의 다른 실시예에서, 비교 결과들을 특정된 특정 바이너리 코드로 변환하도록 구성될 수 있다.
도 6은 본 발명에 따른 비트라인에서의 출력 전류들의 합을 미리설정된 임계 전류들의 세트에 비교하는 프로세스의 일 실시예를 설명한다. 도 6에서, 시냅스 어레이 제어기(120)는 제어 라인(CG_Wa)을 통해 시냅스 가로행 내의 선택된 시냅스 셀(Wa)에 IN_LSB 비트 입력 전압 값 하이(High)를 전송한다. 그리고, 셀(Wa)은 도 3에서 보여지는 바와 같이 가중치의 두 개의 비트들이 곱해진 입력 하이의 함수인 2 μA를 출력한다. 시냅스 셀(Wa)(즉, 가중치 파라미터의 가중치 비트 0 및 가중치 비트 1)과 관련된 Cur_Wa는 2 μA이다. 기준 유닛 내의 기준 시냅스 셀들(R0, R1, R2, R3, R4, 및 R5)의 세트 각각은 메인 시냅스 셀들의 동일한 타입을 사용하여 구현된다. 이러한 시냅틱 셀들은 대응하는 기준 신호 라인들(즉, CG_R0 내지 CG_R5)에 결합되고, 서로 병렬로 연결되고, 공통의 비트라인을 공유한다. 각각의 기준 시냅스 셀은 출력 라인(BL) 상에 특정 기준 전류를 출력하는데, 왜냐하면 이들 각각은 대응하는 신호 라인을 통해 전압을 수신할 때 특정 시냅틱 가중치들을 갖기 때문이다. 여기서, 여섯 개의 기준 시냅틱 기준 셀들 각각은 증분적으로 상이한 전류들을 발생시키도록 구성된다. 예컨대, 어레이에서 상단으로부터 하단으로의 순서로, 활성화된 셀(R5)은 6 μA를 출력하도록 구성되고; 활성화된 기준 셀(R4)은 5 μA를 출력할 수 있고; 활성화된 기준 셀(R3)은 4 μA를 출력할 수 있고; 활성화된 기준 셀(R2)은 3 μA를 출력할 수 있고; 활성화된 기준 셀(R1)은 2 μA를 출력할 수 있고; 활성화된 기준 셀(R0)은 1 μA를 출력할 수 있다. 감지 증폭기의 임계 레벨은 7 μA에서 정의된다. 감지 회로(140) 출력(SO)은 공통의 비트라인 전류(Cur)가 임계 레벨보다 더 큰 경우 하이(high)이다. 감지 회로(140) 출력(SO)은 공통의 비트라인 전류(Cur)가 임계 레벨보다 더 크지 않는 경우 로우(low)이다.
단계 S1에서, 감지 회로(140)는 합산된 전류 값 8 μA(= Cur_Wa의 2 μA + Cur_R5의 6 μA)가 기준 임계 레벨 7 μA보다 더 큼을 감지하고, 따라서 바이너리 코드 하이 또는 H의 결정 결과를 발생시킨다. 후속하여, 단계 S2에서, 이 경우 감지 회로(140)는 합산된 전류 값 7 μA(= Cur_Wa의 2 μA + Cur_R4의 5 μA)가 기준 임계 레벨 7 μA와 동일함을 감지하고, 따라서 바이너리 코드 로우 또는 L의 결정 결과를 발생시킨다. 후속하여, 단계 S3에서, 감지 회로(140)는 합산된 전류 값 6 μA(= Cur_Wa의 2 μA + Cur_R3의 4 μA)가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 따라서 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S4에서, 감지 회로(140)는 합산된 전류 값 5 μA(= Cur_Wa의 2 μA + Cur_R2의 3 μA)가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 따라서 바이너리 코드 L의 결정 결과를 발생시킨다.
후속하여, 단계 S5에서, 감지 회로(140)는 합산된 전류 값 4 μA(= Cur_Wa의 2 μA + Cur_R1의 2 μA)가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 따라서 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S6에서, 감지 회로(140)는 합산된 전류 값 3 μA(= Cur_Wa의 2 μA + Cur_R0의 1 μA)가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 따라서 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S7에서, 감지 회로(140)는 합산된 전류 값 2 μA(= Cur_Wa의 2 μA)가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 따라서 바이너리 코드 L의 결정 결과를 발생시킨다.
다른 실시예에서, 이러한 방식으로, BL 전류 레벨 Cur이 감지 회로(140)로부터 직렬로 감지되고, 따라서 일곱 개의 단계들을 통해 시퀀스 "HLLLLLL"이 발생될 것이다. 비록 도 6에서는 특정 BL에서의 전류 레벨 Cur에 대한 하나의 특정 시퀀스가 특정 감지 회로(140)에 대해 도시되지만, 각각의 감지 회로(140)는 각각의 BL 전류 레벨 Cur에 따라 각각의 SO 노드에서 상이한 시퀀스를 발생시킬 수 있다. 그 다음에, 1들의 수를 카운팅함으로써 써모미터 코드가 바이너리 코드로 변환될 수 있고, 여기서는 어레이의 세로열에서의 써모미터 코드 "HLLLLLL"에 대한 "001"의 바이너리 코드가 발생되는데, 왜냐하면 써모미터 코드가 1개의 하이 신호를 갖기 때문이다. 바이너리 코드는 써모미터 코드와 비교하여 동일한 정보를 저장하기 위해 더 적은 수의 비트들을 요구한다. 그 다음에, 이러한 바이너리 코드는 누산기 출력(AO)을 업데이트하기 위한 적절한 시프트로 누산기 회로(150)의 레지스터 위치들에 적절하게 누산될 수 있다.
도 6에서 예시되는 바와 같이 입력 LSB(IN_LSB)와 가중치 비트들 0, 1 간에 계산이 행해지는 경우, 비트들의 시프트는 수행될 수 없다. 입력 LSB(IN_LSB) 및 가중치 비트들 2, 3에 대한 계산이 있는 경우, 2-비트 시프트가 적용될 수 있다. 입력 LSB(IN_LSB)와 가중치 비트들 4, 5 간에 계산이 행해지는 경우, 4-비트가 시프트될 수 있다. 입력 LSB(IN_LSB) 및 가중치 비트들 6, 7에 대한 계산이 있는 경우, 6-비트 시프트가 적용될 수 있다. 입력 CSB(IN_CSB)와 가중치 비트 0, 1 간에 계산이 행해지는 경우, 1-비트 시프트가 적용될 수 있다. 입력 CSB(IN_CSB)와 가중치 비트들 2, 3 간에 계산이 행해지는 경우, 3-비트 시프트가 적용될 수 있다. 입력 CSB(IN_CSB)와 가중치 비트들 4, 5 간에 계산이 행해지는 경우, 5-비트 시프트가 적용될 수 있다. 입력 CSB(IN_CSB)와 가중치 비트들 6, 7 간에 계산이 행해지는 경우, 7-비트 시프트가 적용될 수 있다. 입력 MSB(IN_MSB)와 가중치 비트들 0, 1 간에 계산이 행해지는 경우, 2-비트 시프트가 적용될 수 있다. 입력 MSB(IN_MSB)와 가중치 비트들 2, 3 간에 계산이 행해지는 경우, 4-비트 시프트가 적용될 수 있다. 입력 MSB(IN_MSB)와 가중치 비트들 4, 5 간에 계산이 행해지는 경우, 6-비트 시프트가 적용될 수 있다. 입력 MSB(IN_MSB)와 가중치 비트들 6, 7 간에 계산이 행해지는 경우, 8-비트 시프트가 적용될 수 있다. 가중치 및 입력 비트들의 다른 정밀도에 대해, 누산은 적절한 비트 시프트 카운트(bit shift count)들로 직렬로 유사하게 수행될 수 있다.
도 7은 본 발명에 따른 비트라인에서의 출력 전류들의 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다. 도 6에서 설명된 바와 같이, 감지 회로(140)는 특정된 기준 시냅스 레벨들에 따라 합산-및-비교 단계들을 구현한다.
단계 S1에서, (첫 번째 기준 시냅스 레벨 6 μA를 포함하는) 출력 전류의 합 13 μA가 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다. 후속하여, 단계 S2에서, (두 번째 기준 시냅스 레벨 5 μA를 포함하는) 출력 전류의 합 12 μA가 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다.
후속하여, 단계 S3에서, (세 번째 기준 시냅스 레벨 4 μA를 포함하는) 출력 전류의 합 11 μA가 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다. 후속하여, 단계 S4에서, (네 번째 기준 시냅스 레벨 3 μA를 포함하는) 출력 전류의 합 10 μA가 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다.
후속하여, 단계 S5에서, (다섯 번째 기준 시냅스 레벨 2 μA를 포함하는) 출력 전류의 합 9 μA가 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다. 후속하여, 단계 S6에서, (여섯 번째 기준 시냅스 레벨 1 μA를 포함하는) 8 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 큼이 발견되면, 감지 회로(140)는 바이너리 코드 H를 발생시킨다. 마지막으로, 단계 S7에서, (일곱 번째 기준 시냅스 레벨 0 μA를 포함하는) 출력 전류의 합 7 μA가 기준 임계 레벨 7 μA와 동일함이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다.
다른 실시예에서, 이러한 방식으로, BL 전류 레벨 Cur이 감지 회로(140)로부터 직렬로 감지되고, 일곱 개의 단계들을 통해 "HHHHHHL"의 시퀀스가 발생된다. 1들의 수를 카운팅함으로써 써모미터 코드가 바이너리 코드로 변환될 수 있고, 여기서 예시되는 세로열에서의 "HHHHHHL"의 써모미터 코드에 대해서는 "110"의 바이너리 코드가 발생되는데, 왜냐하면 써모미터 코드가 6개의 하이 신호들을 갖기 때문이다. 그 다음에, 이러한 바이너리 코드는 누산기 출력(AO)을 업데이트하기 위한 적절한 시프트로 누산기의 레지스터 위치들에 적절하게 누산될 수 있다. 도 7에서 예시되는 바와 같이 입력 LSB(IN_LSB) 및 가중치 비트 0, 1에 대한 계산이 있는 경우, 시프트는 적용될 수 없다. 입력 LSB(IN_LSB) 및 가중치 2, 3에 대한 계산이 있는 경우, 2-비트 시프트가 적용될 수 있다. 입력 LSB(IN_LSB) 및 가중치 4, 5에 대한 계산이 있는 경우, 4-비트 시프트가 적용될 수 있다. 입력 LSB(IN_LSB) 및 가중치 6, 7에 대한 계산이 있는 경우, 6-비트 시프트가 적용될 수 있다.
도 8은 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다. 도 6 및 도 7에서 설명된 바와 같이, 감지 회로(140)는 특정된 기준 시냅스 레벨들에 따라 합산-및-비교 단계들을 구현한다. 이러한 경우에, 시냅스 어레이 제어기(120)는 제어 라인(CG_Wa)을 통해 시냅스 가로행 내의 시냅스 셀(Wa)에 IN_LSB 비트 입력 전압 값 로우(Low)를 전송한다. 그리고, 셀(Wa)은 도 3에서 보여지는 바와 같이 가중치의 두 개의 비트들이 곱해진 입력 로우의 함수인 대략 0 μA를 출력한다. Cur_Wa는 시냅스 셀(Wa)(즉, 가중치 파라미터의 가중치 비트 0 및 가중치 비트 1)과 관련된다.
단계 S1에서, 단지 첫 번째 기준 시냅스 레벨 6 μA인 대략 6 μA의 합산된 출력 전류가 기준 임계 레벨 7 μA보다 더 낮음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S2에서, 단지 두 번째 기준 시냅스 레벨 5 μA인 대략 5 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다.
후속하여, 단계 S3에서, 단지 두 번째 기준 시냅스 레벨 4 μA인 대략 4 μA의 합산된 출력 전류가 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S4에서, 단지 두 번째 기준 시냅스 레벨 3 μA인 약 3 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다.
후속하여, 단계 S5에서, 단지 두 번째 기준 시냅스 레벨 2 μA인 약 2 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S6에서, 단지 두 번째 기준 시냅스 레벨 1 μA인 약 1 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S7에서, 단지 일곱 번째 기준 시냅스 레벨 0 μA인 약 0 μA의 합산된 전류 값이 기준 임계 레벨 7 μA보다 더 작음이 발견되면, 감지 회로(140)는 바이너리 코드 L의 결정 결과를 발생시킨다.
다른 실시예에서, 이러한 방식으로, BL 전류 레벨 Cur이 감지 회로(140)로부터 직렬로 감지되고, 도 8에서 예시되는 바와 같이 일곱 개의 단계들로부터 "LLLLLLL"의 시퀀스가 발생된다. 1들의 수를 카운팅함으로써 써모미터 코드가 바이너리 코드로 변환될 수 있고, 따라서 "LLLLLLL"의 써모미터 코드에 대한 "000"의 바이너리 코드가 발생되는데, 왜냐하면 써모미터 코드가 0개의 하이 신호를 갖기 때문이다. 그 다음에, 이러한 바이너리 코드는 누산기 회로(150)의 레지스터 위치들에 더해지지 않을 수 있는데, 왜냐하면 이러한 덧셈은 누산기 출력(AO)을 변경시키지 않기 때문이다.
도 9는 본 발명에 따른 비트라인에서의 전류의 측정된 합을 미리설정된 임계 전류들의 세트와 비교하는 프로세스의 다른 실시예를 설명한다.
이러한 경우에, 시냅스 어레이 제어기(120)는 제어 라인(CG_Wa)을 통해 시냅스 가로행 내의 시냅스 셀(Wa)에 IN_LSB 비트 입력 전압 값 하이를 전송한다. 그리고, 기준 시냅스 어레이(130) 내의 0개의 기준 셀, 또는 단일의 기준 셀, 또는 기준 셀들의 결합에 의해 기준 시냅스 레벨들이 획득된다. 기준 셀들로부터의 출력 레벨들은 바이너리 가중된다(즉, Cur_R2는 Cur_R1의 두 배이고, Cur_R1은 Cur_R0의 두 배임). 바이너리-가중된 기준 셀들을 사용하는 경우, 도 7의 동일한 동작에 대한 기준 셀들의 요구된 수는 6개(즉, 도 7에서와 같은 Cur_R5 ~ Cur_R0)로부터 3개(도 9에서 Cur_R2 ~ Cur_R0)로 감소된다. 이것은 기준 셀 어레이의 요구된 영역을 감소시킬 수 있어, 뉴럴 네트워크 컴퓨팅 유닛의 영역 효율성을 향상시킨다.
단계 S1에서, 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀들(R2, R1)의 결합에 의해 획득된 시냅스 레벨 1의 6 μA를 포함하는) 합산된 전류 값 8 μA가 기준 임계 레벨 7 μA보다 더 큼을 감지하고, 바이너리 코드 H의 결정 결과를 발생시킨다. 후속하여, 단계 S2에서, 이 경우 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀들(R2, R0)의 결합에 의해 획득된 시냅스 레벨 2의 5 μA를 포함하는) 합산된 전류 값 7 μA가 기준 임계 레벨 7 μA와 동일함을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다.
후속하여, 단계 S3에서, 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀(R2)에 의해 획득된 시냅스 레벨 3의 4 μA를 포함하는) 합산된 전류 값 6 μA가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S4에서, 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀들(R1, R0)의 결합에 의해 획득된 시냅스 레벨 4의 3 μA를 포함하는) 합산된 전류 값 5 μA가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다.
후속하여, 단계 S5에서, 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀(R1)에 의해 획득된 시냅스 레벨 5의 2 μA를 포함하는) 합산된 전류 값 4 μA가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S6에서, 감지 회로(140)는 ((i) Cur_Wa를 통한 시냅스 셀의 2 μA 및 (ii) 기준 셀(R0)에 의해 획득된 시냅스 레벨 6의 1 μA를 포함하는) 합산된 전류 값 3 μA가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다. 후속하여, 단계 S7에서, 감지 회로(140)는 단지 Cur_Wa의 2 μA인 (0개의 기준 셀에 의해 획득된 시냅스 레벨 7의 0 μA를 포함하는) 합산된 전류 값 2 μA가 기준 임계 레벨 7 μA보다 더 작음을 감지하고, 바이너리 코드 L의 결정 결과를 발생시킨다.
다른 실시예에서, 이러한 방식으로, BL 전류 레벨 Cur이 감지 회로(140)로부터 직렬로 감지되고, 도 9에서 예시되는 바와 같이 일곱 개의 단계들로부터 "HLLLLLL"의 시퀀스가 발생된다. 1들의 수를 간단히 카운팅함으로써 써모미터 코드가 바이너리 코드로 변환될 수 있어, 예시되는 세로열에서의 "HLLLLLL"의 써모미터 코드에 대한 "001"의 바이너리 코드가 발생되는데, 왜냐하면 써모미터 코드가 1개의 하이 신호를 갖기 때문이다. 그 다음에, 이러한 바이너리 코드는 누산기 출력(AO)을 업데이트하기 위한 적절한 시프트로 누산기의 레지스터 위치들에 적절하게 누산될 수 있다. 도 9에서 예시되는 바와 같이 입력 LSB(IN_LSB) 및 가중치 비트 0, 1에 대한 계산이 있는 경우, 시프트는 적용될 수 없다. 입력 LSB(IN_LSB) 및 가중치 2, 3에 대한 계산이 있는 경우, 2-비트 시프트가 적용될 수 있다. 입력 LSB(IN_LSB) 및 가중치 4, 5에 대한 계산이 있는 경우, 4-비트 시프트가 적용될 수 있다. 입력 LSB(IN_LSB) 및 가중치 6, 7에 대한 계산이 있는 경우, 6-비트 시프트가 적용될 수 있다.

Claims (20)

  1. 뉴럴 네트워크 컴퓨팅 유닛(neural network computing unit)으로서, 상기 뉴럴 네트워크 컴퓨팅 유닛은,
    비트 라인(bit line)과;
    복수의 메모리 블록(memory block)들을 갖는 메모리 어레이(memory array)와, 여기서 각각의 메모리 블록은 하나 또는 하나보다 많은 메모리 셀(memory cell)들을 갖고, 각각의 셀은 상기 비트 라인에 연결되며; 그리고
    제어 회로(control circuit)를 포함하고,
    상기 제어 회로는,
    직렬화된 입력을 순차적으로 상기 메모리 셀들에 적용하여 상기 메모리 셀들의 출력들이 상기 직렬화된 입력에 응답하여 순차적으로 생성되도록 하는 것과, 여기서 상기 출력들 각각은 상기 메모리 셀 내에 저장된 가중치 값(weight value)과 상기 입력의 곱(multiplication)에 대응하며; 그리고
    각각이 특정 전류량(current amount)을 갖는 기준 전류 레벨(reference current level)들의 그룹(group)을 설정하여 기준 전류 레벨들의 상기 세트(set)에 대응하는 각각의 출력 전류들을 발생시킬 때의 상기 메모리 셀들을 상기 제어 회로가 제어하도록 하는 것을
    수행하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  2. 제1항에 있어서,
    상기 제어 회로는 또한, 직렬화된 전압 입력을 순차적으로 상기 메모리 셀들에 적용하여 상기 메모리 셀의 상기 출력 전류들 각각이 상기 전압 입력에 대응하여 순차적으로 생성되도록 하는 것을 수행하도록 구성되고,
    상기 출력 전류는 상기 메모리 셀 내에 저장된 가중치 값과 상기 전압 입력의 곱에 대응하는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  3. 제2항에 있어서,
    상기 컴퓨팅 유닛은 또한, 상기 비트 라인에서 상기 메모리 셀들의 출력 전류들을 순차적으로 수신하기 위한 감지 회로(sensing circuit)를 포함하는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  4. 제3항에 있어서,
    상기 컴퓨팅 유닛은 또한, 상기 감지 회로에 결합되는 누산기 회로(accumulator circuit)를 포함하고,
    상기 누산기 회로는 써모미터 코드(thermometer code)로 된 상기 수신된 출력 전류 값들을 바이너리 코드(binary code)로 변환하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  5. 제4항에 있어서,
    상기 누산기 회로는 또한, 상기 제어 회로에 의해 정의된 비트-시프트 방식(bit-shifted manner)으로 상기 변환된 값들을 누산하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  6. 제2항에 있어서,
    상기 컴퓨팅 유닛은 또한, 상기 비트 라인에 연결되는 복수의 메모리 셀들을 포함하는 메인 시냅스 블록(main synapse block)을 포함하고,
    상기 제어 회로는 또한, 복수의 직렬 입력 데이터에 대응하는 복수의 전압 입력들을 상기 시냅스 어레이(synapse array) 내의 상기 복수의 셀들 중 각각의 셀들에 직렬로 적용하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  7. 제6항에 있어서,
    상기 직렬 입력 데이터의 최상위 비트(most significant bit)는 대응하는 셀에 첫 번째로 입력되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  8. 제7항에 있어서,
    상기 뉴럴 네트워크 컴퓨팅 유닛은 최하위 비트(least significant bit)를 완전히 컴퓨팅함이 없이 컴퓨팅연산(computation)을 끝내는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  9. 제6항에 있어서,
    상기 컴퓨팅 유닛은 또한, 상기 비트 라인에 연결되는 복수의 기준 셀(reference cell)들을 포함하는 기준 시냅스 블록(reference synapse block)을 포함하고, 여기서 상기 셀들은 동일한 또는 상이한 미리정의된 출력 전류를 상기 비트라인에 발생시키도록 구성되고,
    상기 제어 회로는 또한, 복수의 직렬 입력 데이터에 대응하는 복수의 입력 전압들을 선택된 상기 기준 시냅스 어레이 내의 복수의 기준 셀들에 적용하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  10. 제9항에 있어서,
    상기 제어 회로는 또한, 상기 제어 회로에 의해 정의된 기준 레벨들에 대응하는 각각의 출력들을 생성하도록 0개, 1개, 또는 다수 개의 기준 셀들을 비활성화하거나 활성화하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  11. 제9항에 있어서,
    상기 기준 셀들로부터의 출력 전류들은 바이너리 가중(binary weight)되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  12. 제3항에 있어서,
    상기 감지 회로는 또한, 상기 메모리 블록들 중 제1 메모리 블록 내의 메모리 셀의 출력 전류와 상기 메모리 블록들 중 제2 메모리 블록 내의 메모리 셀의 출력 전류의 합(sum)을 감지하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  13. 제12항에 있어서,
    상기 감지 회로는 또한, (i) 상기 메모리 블록들 중 상기 제1 메모리 블록에 적용된 직렬 입력 데이터의 하나의 비트에 대응하는 상기 메모리 셀의 출력 전류와 (ii) 상기 제어 회로에 의해 정의된 기준 레벨들 각각에 대응하는 상기 기준 셀의 출력 전류의 합을 획득하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  14. 제13항에 있어서,
    상기 감지 회로는 또한,
    상기 비트 라인에서 상기 합산된 출력 전류들을 획득하는 것과;
    특정된 임계 전류 레벨과 출력 전류들의 상기 획득된 합의 레벨 간의 비교 결과를 생성하는 것과; 그리고
    상기 비교 결과를 대응하는 바이너리 신호(binary signal)로 변환하는 것을
    수행하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  15. 제14항에 있어서,
    상기 감지 회로는 또한, (i) 상기 임계 전류 레벨과 상기 합산된 출력 전류 레벨 간의 비교 및 (ii) 상기 비교 결과를 상기 대응하는 바이너리 신호로 변환하는 것의 다수의 반복을 설정하도록 구성되는 것을 특징으로 하는, 뉴럴 네트워크 컴퓨팅 유닛.
  16. 메모리 셀들의 어레이를 포함하는 장치로서, 상기 장치는,
    비트 라인과;
    각각이 상기 비트 라인에 연결되는 메모리 셀들의 제1 세트와;
    각각이 상기 비트 라인에 연결되는 메모리 셀들의 제2 세트와;
    제어 회로와;
    상기 제어 회로를 메모리 셀들의 상기 제1 세트에 연결하는 제어 라인들의 제1 세트와, 여기서
    상기 제어 회로는, 전압 입력 데이터를 직렬 포맷(serial format)으로 메모리 셀들의 상기 제1 세트에 순차적으로 적용하여 출력 전류들이 상기 전압 입력 데이터에 응답하여 순차적으로 생성되도록 하는 것을 수행하도록 구성되고, 여기서 상기 출력 전류는 상기 메모리 셀들 각각 내에 저장된 가중치와 상기 전압 입력 데이터의 곱에 대응하며;
    상기 제어 회로를 메모리 셀들의 상기 제2 세트에 연결하는 제어 라인들의 제2 세트와, 여기서
    상기 제어 회로는, 각각이 특정 전류량을 갖는 기준 레벨들의 그룹을 설정하여 메모리 셀들의 상기 제2 세트가 기준 전류 레벨들의 상기 그룹에 대응하는 각각의 출력 전류들을 발생시키도록 하는 것을 수행하도록 구성되고;
    상기 비트 라인에서 메모리 셀들의 상기 제1 세트 및 상기 제2 세트로부터 출력 전류들을 수신하기 위한 감지 회로를 포함하는 것을 특징으로 하는, 장치.
  17. 제16항에 있어서,
    상기 메모리 셀은, 미리정의된 특정 출력 전류를 생성하도록 각각이 프로그래밍된, 플래시 메모리(Flash memory)이거나, 저항성 변화 메모리(resistive change memory)이거나, FeFET 메모리이거나, 또는 가중치 메모리(weight memory)를 갖는 로직 트랜지스터(logic transistor)인 것을 특징으로 하는, 장치.
  18. 제16항에 있어서,
    상기 장치는 또한, 상기 감지 회로에 결합되는 누산기 회로를 포함하고,
    상기 누산기 회로는 상기 제어 회로에 의해 정의된 비트-시프트 방식으로 상기 감지 회로로부터 프로세싱된 신호 값들을 수신하도록 구성되는 것을 특징으로 하는, 장치.
  19. 제16항에 있어서,
    상기 감지 회로는 또한, 상기 비트 라인에서 상기 출력 전류들 중 각각의 출력 전류를 직렬로 수신하여 미리정의된 임계치와 비교하도록 구성되는 것을 특징으로 하는, 장치.
  20. 제18항에 있어서,
    상기 누산기 회로는 또한,
    상기 수신된 신호 값들을 써모미터 코드로부터 바이너리 코드로 변환하는 것을 수행하도록 구성되고,
    상기 제어 회로에 의해 정의된 비트-시프트 방식으로 상기 변환된 바이너리 코드를 누산하는 것을 특징으로 하는, 장치.
KR1020227022815A 2019-12-03 2020-12-02 직렬화된 뉴럴 네트워크 컴퓨팅 유닛 KR20220112280A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962942923P 2019-12-03 2019-12-03
US62/942,923 2019-12-03
US17/109,114 US20210166110A1 (en) 2019-12-03 2020-12-01 Serialized neural network computing unit
US17/109,114 2020-12-01
PCT/US2020/062802 WO2021113298A1 (en) 2019-12-03 2020-12-02 Serialized neural network computing unit

Publications (1)

Publication Number Publication Date
KR20220112280A true KR20220112280A (ko) 2022-08-10

Family

ID=76091568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227022815A KR20220112280A (ko) 2019-12-03 2020-12-02 직렬화된 뉴럴 네트워크 컴퓨팅 유닛

Country Status (6)

Country Link
US (1) US20210166110A1 (ko)
EP (1) EP4070243A4 (ko)
KR (1) KR20220112280A (ko)
CN (1) CN114902241A (ko)
TW (1) TW202131331A (ko)
WO (1) WO2021113298A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12019905B2 (en) 2021-08-02 2024-06-25 Qualcomm Incorporated Digital compute in memory
TWI806640B (zh) * 2022-01-11 2023-06-21 旺宏電子股份有限公司 記憶體裝置及其操作方法
WO2023177269A1 (en) * 2022-03-18 2023-09-21 Samsung Electronics Co., Ltd. Neural network based method and device
CN116863936B (zh) * 2023-09-04 2023-12-19 之江实验室 一种基于FeFET存算一体阵列的语音识别方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
US6081456A (en) * 1999-02-04 2000-06-27 Tower Semiconductor Ltd. Bit line control circuit for a memory array using 2-bit non-volatile memory cells
US9846644B2 (en) * 2013-01-14 2017-12-19 Hewlett Packard Enterprise Development Lp Nonvolatile memory array logic
US9747546B2 (en) * 2015-05-21 2017-08-29 Google Inc. Neural network processor
EP3769426A4 (en) * 2018-03-19 2021-12-22 Mythic, Inc. SYSTEM AND METHOD FOR CALCULATION OF MIXED SIGNALS
US11048434B2 (en) * 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation
US11132176B2 (en) * 2019-03-20 2021-09-28 Macronix International Co., Ltd. Non-volatile computing method in flash memory
TWI760746B (zh) * 2019-05-22 2022-04-11 力旺電子股份有限公司 運用於類神經網路系統的乘積累加電路之控制電路

Also Published As

Publication number Publication date
CN114902241A (zh) 2022-08-12
WO2021113298A1 (en) 2021-06-10
TW202131331A (zh) 2021-08-16
EP4070243A4 (en) 2024-02-28
EP4070243A1 (en) 2022-10-12
US20210166110A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
KR20220112280A (ko) 직렬화된 뉴럴 네트워크 컴퓨팅 유닛
CN111722830B (zh) 快闪存储器的非易失性计算方法
US5729490A (en) Parallel-dichotomic serial sensing method for sensing multiple-level non-volatile memory cells, and sensing circuit for actuating such method
CN109800876B (zh) 一种基于NOR Flash模块的神经网络的数据运算方法
JP5478861B2 (ja) 相変化物質をプログラミングする方法
US10446231B2 (en) Memory cell structure
JP2021518590A (ja) 混合信号コンピューティングのためのシステムおよび方法
WO2002027729A2 (en) Writable tracking cells
CN110729011B (zh) 用于类神经网路的存储器内运算装置
KR102497616B1 (ko) 메모리 내 데이터 판독을 위한 디바이스 및 방법
KR20190133532A (ko) 트랜스포즈가 가능한 가중치 셀 및 이의 어레이
KR102409859B1 (ko) 신경망들을 위한 가중된 입력들을 생성하도록 구성된 메모리 셀들
TWI761860B (zh) 記憶體設備及使用記憶體之方法
CN113255875A (zh) 神经网络电路和神经网络系统
JP7255068B2 (ja) メモリデバイス及びその動作方法
US20220101142A1 (en) Neural network accelerators resilient to conductance drift
US20210241084A1 (en) Neural network unit
CN112447228A (zh) 执行乘法累加运算的非易失性存储器件
US20220043885A1 (en) Method and apparatus for convolutional computation based on floating gate nvm array
US20240223207A1 (en) Multiply-accumulate successive approximation devices and methods
US20240220742A1 (en) Multiply-accumulate successive approximation devices and methods
US20230280976A1 (en) Using reduced read energy based on the partial-sum
CN118276821A (zh) 乘积累加逐次逼近装置和方法
CN118138026A (zh) 延时缓冲单元、电子装置、延时缓冲阵列及其操作方法
WO2019211601A1 (en) An analogue-digital hybrid computer