KR102410849B1 - 뉴럴 네트워크를 구현하기 위한 전자 장치 - Google Patents

뉴럴 네트워크를 구현하기 위한 전자 장치 Download PDF

Info

Publication number
KR102410849B1
KR102410849B1 KR1020190110691A KR20190110691A KR102410849B1 KR 102410849 B1 KR102410849 B1 KR 102410849B1 KR 1020190110691 A KR1020190110691 A KR 1020190110691A KR 20190110691 A KR20190110691 A KR 20190110691A KR 102410849 B1 KR102410849 B1 KR 102410849B1
Authority
KR
South Korea
Prior art keywords
data
voltage
logical value
output
bit line
Prior art date
Application number
KR1020190110691A
Other languages
English (en)
Other versions
KR20210029876A (ko
Inventor
김진석
김율화
김재준
김형준
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020190110691A priority Critical patent/KR102410849B1/ko
Priority to US17/011,929 priority patent/US11335399B2/en
Publication of KR20210029876A publication Critical patent/KR20210029876A/ko
Priority to US17/723,358 priority patent/US11790985B2/en
Priority to KR1020220070218A priority patent/KR102532606B1/ko
Application granted granted Critical
Publication of KR102410849B1 publication Critical patent/KR102410849B1/ko
Priority to US18/303,309 priority patent/US20230260568A1/en
Priority to KR1020230057225A priority patent/KR20230065225A/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/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • 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
    • 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
    • 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/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • 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/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • 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/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/062Differential amplifiers of non-latching type, e.g. comparators, long-tailed pairs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines

Landscapes

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

Abstract

본 발명은 제 1 메모리 셀, 제 2 메모리 셀, 및 증폭 회로를 포함한다. 제 1 메모리 셀은, 제 1 워드 라인 및 제 2 워드 라인을 통해 수신되는 제 1 입력 데이터와 제 1 가중치에 기초하여, 제 1 비트 라인을 통해 제 1 전압을 출력하거나, 제 2 비트 라인을 통해 제 2 전압을 출력한다. 제 2 메모리 셀은, 제 3 워드 라인 및 제 4 워드 라인을 통해 수신되는 제 2 입력 데이터와 제 2 가중치에 기초하여, 제 1 비트 라인을 통해 제 3 전압을 출력하거나 제 2 비트 라인을 통해 제 4 전압을 출력한다. 증폭 회로는, 제 1 비트 라인을 통해 수신되는 전압의 레벨 및 제 2 비트 라인을 통해 수신되는 전압의 레벨의 합에 대응하는 레벨을 갖는 출력 전압을 생성한다.

Description

뉴럴 네트워크를 구현하기 위한 전자 장치{ELECTRONIC DEVICE FOR CONFIGURING NEURAL NETWORK}
본 발명은 전자 장치에 관한 것으로, 좀 더 상세하게는 뉴럴 네트워크를 구현하기 위한 전자 장치에 관한 것이다.
뉴럴 네트워크(neural network)는 사람의 두뇌를 모델링하기 위한 알고리즘 및 그 알고리즘을 구현하기 위한 전자 회로/장치/시스템 등을 의미한다. 뉴럴 네트워크는 수 많은 뉴런(neuron)들을 기본 단위로서 포함하고, 뉴런들은 시냅스들을 통해 다른 뉴런들로 신호들을 전달한다.
뉴럴 네트워크는 머신 러닝(Machine Learning)을 수행하기 위해 사용된다. 뉴럴 네트워크는 입력되는 데이터에 기초하여 트레이닝될 수 있다. 예컨대, 뉴럴 네트워크는 입력되는 데이터의 특징 및 패턴을 학습할 수 있다. 뉴럴 네트워크는 수행된 트레이닝에 기초하여 새롭게 입력되는 문제에 대한 답을 생성할 수 있다. 예로서, 뉴럴 네트워크는 입력되는 데이터에 대응하는 출력 데이터를 생성할 수 있다.
머신 러닝을 위한 알고리즘이 수행하기 위해 많은 양의 데이터가 처리될 필요가 있다. 따라서, 많은 양의 데이터를 효율적으로 처리하기 위한 뉴럴 네트워크의 설계가 요구된다. 예로서, 이진 수들에 기초하여 데이터를 처리하는 바이너리 뉴럴 네트워크(Binary Neural Network; BNN)가 설계될 수 있다.
본 발명은 바이너리 뉴럴 네트워크(Binary Neural Network; BNN)를 구현하기 위한 전자 장치를 제공할 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 제 1 메모리 셀, 제 2 메모리 셀, 및 증폭 회로를 포함할 수 있다. 제 1 메모리 셀은, 제 1 워드 라인 및 제 2 워드 라인을 통해 수신되는 제 1 입력 데이터와 제 1 가중치에 기초하여, 제 1 비트 라인을 통해 제 1 전압을 출력하거나, 제 2 비트 라인을 통해 제 2 전압을 출력할 수 있다. 제 2 메모리 셀은, 제 3 워드 라인 및 제 4 워드 라인을 통해 수신되는 제 2 입력 데이터와 제 2 가중치에 기초하여, 제 1 비트 라인을 통해 제 3 전압을 출력하거나 제 2 비트 라인을 통해 제 4 전압을 출력할 수 있다. 증폭 회로는, 제 1 비트 라인을 통해 수신되는 전압의 레벨 및 제 2 비트 라인을 통해 수신되는 전압의 레벨의 합에 대응하는 레벨을 갖는 출력 전압을 생성할 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 제 1 컬럼 및 증폭 회로를 포함할 수 있다. 제 1 컬럼은, 제 1 워드 라인을 통해 입력되는 제 1 입력 데이터, 및 제 1 가중치에 기초하여, 논리 연산에 따라 결정되는 논리 값의 제 1 결과 데이터를 제 1 비트 라인 또는 제 2 비트 라인을 통해 출력하도록 구성되는 제 1 메모리 셀을 포함할 수 있다. 제 1 컬럼은, 제 2 워드 라인을 통해 입력되는 제 2 입력 데이터, 및 제 2 가중치에 기초하여, 논리 연산에 따라 결정되는 논리 값의 제 2 결과 데이터를 제 1 비트 라인 또는 제 2 비트 라인을 통해 출력하도록 구성되는 제 2 메모리 셀을 포함할 수 있다. 증폭 회로는, 제 1 결과 데이터와 제 2 결과 데이터의 합을 출력할 수 있다.
본 발명의 실시 예에 따르면, 뉴럴 네트워크에 기반한 알고리즘이 효율적으로 구현될 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 보여주는 블록도 이다.
도 2는 도 1의 메모리 셀 어레이의 예시적인 구성을 보여주는 블록도 이다.
도 3은 도 2의 메모리 셀의 예시적인 구성을 보여주는 블록도 이다.
도 4 내지 도 7은 도 2의 메모리 셀의 예시적인 동작들을 설명하기 위한 블록도들 이다.
도 8은 도 1의 센스 증폭기 블록의 예시적인 구성을 보여주는 블록도 이다.
도 9는 도 8의 센스 증폭기 블록의 예시적인 구성을 보여주는 회로도 이다.
도 10은 도 2의 컬럼에 포함되는 메모리 셀들의 예시적인 동작들을 보여주는 개념도 이다.
도 11은 도 2의 컬럼에 포함되는 메모리 셀들의 예시적인 동작들을 보여주는 개념도 이다.
도 12는 인 메모리 캘리브레이션(In-Memory Calibration)을 위한 예시적인 데이터를 저장하는 도 2의 메모리 셀들을 보여주는 개념도 이다.
도 13은 도 1의 전자 장치를 포함하는 예시적인 전자 장치를 보여주는 블록도 이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 보여주는 블록도 이다.
도 1을 참조하면, 전자 장치(1000)는 제어 로직 회로(1100), 메모리 셀 어레이(1200), 센스 증폭기 블록(1300), 전압 제어 회로(1400), 로우 디코더(1500), 컬럼 디코더(1600), 및 데이터 I/O(Input/Output) 회로(1700)를 포함할 수 있다. 예로서, 전자 장치(1000)는 뉴럴 네트워크를 구현하도록 구성된 메모리 장치일 수 있다. 이하, 본 명세서에서 SRAM(Static Random Access Memory)으로 구현되는 전자 장치(1000)가 설명될 것이나, 전자 장치(1000)의 유형은 다양한 유형의 메모리 장치 등으로 변경/수정될 수 있음이 이해될 것이다.
제어 로직 회로(1100)는 프로세서(10)로부터의 커맨드(CMD)에 응답하여, 메모리 장치(100)의 구성 요소들을 제어할 수 있다. 예로서, 제어 로직 회로(1100)는, 프로세서(10)로부터의 명령(CMD)에 응답하여, 다양한 유형의 동작들(예컨대, 읽기 동작 또는 쓰기 동작)이 수행되도록, 메모리 장치(100)의 구성 요소들을 제어할 수 있다. 제어 로직 회로(1100)는 프로세서(10)로부터의 명령(CMD)에 응답하여, 로우 디코더(1500)를 통해 워드 라인들(WL[1] 내지 WL[m])로 전압들이 인가되도록 전압 제어 회로(1400)를 제어할 수 있다.
제어 로직 회로(1100)는 프로세서(10)로부터의 명령(CMD)에 기초하여 데이터를 메모리 셀 어레이(1200)에 입력하기 위해 전압 제어 회로(1400)를 제어할 수 있다. 전압 제어 회로(1400)에 의해 인가되는 전압들에 의해 워드 라인들이 활성화시키거나 비활성화될 수 있다. 예로서, 워드 라인을 활성화시키는 것은 논리 값 "1"을 갖는 데이터를 입력하는 것에 대응하고, 워드 라인을 비활성화시키는 것은 논리 값 "-1"을 갖는 데이터를 입력하는 것에 대응할 수 있다.
전압 제어 회로(1400)는 메모리 셀 어레이(1200)와 연결된 워드 라인들(WL[1] 내지 WL[m])로 제공되는 전압을 제어하도록 구성될 수 있다. 예로서, 전압 제어 회로(1400)는, 제어 로직 회로(1100)의 제어에 의존하여 메모리 셀 어레이(1200)의 메모리 셀들을 활성화시키기 위한 전압들(즉, 논리 값 "1"의 데이터를 입력하기 위한 전압들), 및 메모리 셀들을 비활성화시키기 위한 전압들(즉, 논리 값 "-1"의 데이터를 입력하기 위한 전압들)을 생성할 수 있다.
메모리 셀 어레이(120)는 데이터를 저장하기 위한 메모리 셀들을 포함할 수 있다. 예로서, 메모리 셀 어레이(120)의 메모리 셀들 각각은 가중치를 저장할 수 있다. 복수의 메모리 셀들은 복수의 워드 라인(WL[1] 내지 WL[m]) 및 복수의 비트 라인(BL[1] 내지 BL[n])과 각각 연결될 수 있다. 워드 라인들(WL[1] 내지 WL[m])은 로우 디코더(1500)와 연결되고, 비트 라인들(BL[1] 내지 BL[n])은 컬럼 디코더(1600)와 연결될 수 있다.
센스 증폭기 블록(1300)은 비트 라인들(BL[1] 내지 BL[n])을 통해 데이터를 나타내는 전압들을 수신할 수 있다. 센스 증폭기 블록(1300)은 복수의 비트 라인들로부터 수신되는 전압들에 기초하여 하나의 출력 전압을 생성하고, 생성되는 출력 전압을 증폭시킬 수 있다. 도 8 및 도 9를 참조하여, 센스 증폭기 블록(1300)의 예시적인 구성 및 동작들이 좀 더 구체적으로 설명될 것이다.
데이터 I/O 회로(1700)는 컬럼 디코더(1600)와 연결되고, 메모리 셀 어레이(1200)에 저장된 데이터 또는 프로세서(10)로부터 제공된 데이터를 임시로 저장할 수 있다. 데이터 I/O 회로(1700)는 프로세서(10)와 데이터(DAT)를 교환할 수 있다.
예로서, 프로세서(10)는 뉴럴 네트워크 시스템을 구성하기 위한 전자 장치(1000)에 대한 트레이닝을 위해 가중치들과 관련되는 데이터를 생성할 수 있다. 메모리 셀 어레이(1200)에 가중치들을 저장하기 위해, 프로세서(10)는 명령(CMD)을 출력할 수 있다. 제어 로직 회로(1100)는 명령(CMD)에 응답하여 전압 제어 회로(1400)를 제어하고, 이에 따라 가중치에 대응하는 전압들이 워드 라인들(WL[1] 내지 WL[m])을 통해 인가될 수 있다. 메모리 셀 어레이(1200)는 트레이닝 동작을 통해 가중치들을 저장할 수 있다.
이후, 프로세서(10)는 특정 데이터(예컨대, 사용자로부터 입력되는 문제와 관련되는 데이터)에 대응하는 출력 데이터를 얻기 위해, 명령(CMD)을 출력할 수 있다. 제어 로직 회로(1100)는 명령에 응답하여 메모리 셀 어레이(1200)에 데이터를 입력하기 위해, 복수의 워드라인들이 활성화되도록 전압 제어 회로(1400)를 제어할 수 있다. 전압 제어 회로(1400)에 의해 복수의 워드라인(예컨대, 워드 라인들(WL[1] 내지 WL[m])을 통해 입력될 데이터에 대응하는 전압들이 인가될 수 있다.
도 1의 예에서, 워드 라인들(WL[1] 내지 WL[m]) 및 비트 라인들(BL[1] 내지 BL[n])만이 설명되었으나, 워드 라인들(WL[1] 내지 WL[m]) 각각에 대응하는 다른 워드 라인들이 로우 디코더(1500)와 메모리 셀 어레이(1200) 사이에 연결되고, 비트 라인들(BL[1] 내지 BL[n]) 각각에 대응하는 다른 비트 라인들이 컬럼 디코더(1600)와 메모리 셀 어레이(1200) 사이에 연결될 수 있음이 이해될 것이다(예컨대, 도 2를 참조하여 설명될 워드 라인들(WLB[1] 내지 WLB[m]) 및 비트 라인들(BLB[1] 내지 BLB[n]) 참조).
도 2는 도 1의 메모리 셀 어레이의 예시적인 구성을 보여주는 블록도 이다.
도 2를 참조하면, 메모리 셀 어레이(1200)는 메모리 셀들을 포함하는 n개의 컬럼들(CL1 내지 CLn)을 포함할 수 있다(단, n은 임의의 자연수). 컬럼들(CL1 내지 CLn) 각각은 프리차징 회로, m개의 메모리 셀들, 및 쓰기 드라이버를 포함할 수 있다. 예로서, 컬럼(CL1)은 프리차징 회로(1210), 메모리 셀들(1221 내지 1222), 및 쓰기 드라이버(1230)를 포함할 수 있다.
프리차징 회로들은 프리차징 라인(PRC)를 통해 로우 디코더(1500)로부터 프리차징 전압을 수신할 수 있다. 컬럼들(CL1 내지 CLn) 각각의 제 1 메모리 셀은 워드 라인들(WL[1] 및 WLB[1])과 연결될 수 있다. 유사하게, 컬럼들(CL1 내지 CLn) 각각의 제 k 메모리 셀은 워드 라인들(WL[k] 및 WLB[k])과 연결될 수 있다(단, k는 2 내지 m의 자연수). 컬럼들(CL1 내지 CLn) 각각의 쓰기 드라이버는 쓰기 드라이버 라인(WRC)를 통해 로두 디코더(1500)로부터 쓰기 드라이빙 전압을 수신할 수 있다.
메모리 셀들은 워드 라인들(WL[1] 및 WLB[1] 내지 WL[m] 내지 WLB[m])을 통해 논리 값 "1" 또는 논리 값 "-1"의 데이터를 입력 받을 수 있다. 메모리 셀들 각각은 트레이닝을 통해 논리 값 "1" 또는 논리 값 "-1"의 가중치를 저장할 수 있다. 메모리 셀들은 입력되는 데이터 및 가중치에 기초하여 논리 값 "1" 또는 논리 값 "-1"의 데이터를 비트 라인들(BL[1] 및 BLB[1] 내지 BL[n] 및 BLB[n])을 통해 출력할 수 있다. 예로서, 메모리 셀들은 논리 값 "1" 또는 논리 값 "-1"의 데이터를 나타내는 전압들(VOUT11 및 VOUT12 내지 VOUTn1 및 VOUTn2)을 비트 라인들(BL[1] 및 BLB[1] 내지 BL[n] 및 BLB[n])을 통해 출력할 수 있다.
메모리 셀(1221)은 워드 라인들(WL[1] 및 WLB[1]) 중 하나로부터 데이터를 입력 받을 수 있다. 예로서, 메모리 셀(1221)은 워드 라인(WL[1])을 통해 논리 값 "1"의 데이터를 입력 받거나, 워드 라인(WLB[1])을 통해 논리 값 "-1"의 데이터를 입력 받을 수 있다. 메모리 셀(1221)은, 워드 라인(WL[1])을 통해 입력되는 데이터에 응답하여 비트 라인(BL[1])을 통해 데이터를 출력하고, 워드 라인(WLB[1])을 통해 입력되는 데이터에 응답하여 비트 라인(BLB[1])을 통해 데이터를 출력할 수 있다.
하나의 주기 동안 메모리 셀들(1221 내지 122m)로부터 출력되는 데이터를 획득하기 위해, 하나의 주기 동안 워드 라인들(WL[1] 및 WLB[1] 내지 WL[m] 내지 WLB[m])을 통해 전압들이 수신될 수 있다. 예로서, 워드 라인들(WL[1] 및 WLB[1] 내지 WL[m] 내지 WLB[m])을 통해 전압들이 실질적으로 동시에 수신됨에 따라, 컬럼(CL1)의 메모리 셀들(1221 내지 122m)로부터 실질적으로 동시에 데이터가 출력될 수 있다. 따라서, 메모리 셀들(1221 내지 122m)에 의해 출력되는 데이터의 합을 나타내는 전압들(VOUT11 및 VOUT12)이 비트 라인들(BL[1] 및 BLB[1])을 통해 출력될 수 있다.
컬럼들(CL2 내지 CLn)의 메모리 셀들은 컬럼(CL1)의 메모리 셀들(1221 내지 122m)의 동작들과 유사한 동작들을 수행할 수 있으므로 이하 중복되는 설명은 생략된다. 도 3을 참조하여, 메모리 셀(1221)의 예시적인 구성이 좀 더 구체적으로 설명될 것이다. 도 2의 메모리 셀들의 구성들은 메모리 셀(1221)의 구성과 유사하므로 이하 중복되는 설명은 생략된다.
도 3은 도 2의 메모리 셀의 예시적인 구성을 보여주는 블록도 이다.
도 3을 참조하면, 메모리 셀(1221)은 트랜지스터들(TR1 및 TR2) 및 인버터들(INV1 및 INV2)을 포함할 수 있다. 인버터들(INV1 및 INV2) 각각은 적어도 하나의 트랜지스터를 포함할 수 있다. 예로서, 인버터들(INV1 및 INV2) 각각은 2개의 트랜지스터들로 구현될 수 있고, 메모리 셀(1221)은 총 6개의 트랜지스터들로 구현될 수 있으나, 메모리 셀(1221)의 구성은 도 4 내지 도 7을 참조하여 설명될 동작들을 수행하기 위한 다양한 유형의 메모리 셀의 구성들로 수정/변경될 수 있음이 이해될 것이다.
도 3의 예에서, 트랜지스터들(TR1 및 TR2) 각각은 스위칭 동작을 위한 N형 MOSFET(Metal Oxide Semiconductor Field Effect Transistor)으로 구현될 수 있다. 그러나, 트랜지스터들(TR1 및 TR2) 각각은 도 4 내지 도 7을 참조하여 설명될 동작들을 수행하도록 구성되는 다양한 유형의 트랜지스터들 중 적어도 하나, 또는 그 트랜지스터들과 다른 구성들의 다양한 조합들로 구현될 수 있음이 이해될 것이다.
트랜지스터(TR1)의 게이트 단은 워드 라인(WL[1])을 통해 특정 논리 값을 갖는 데이터를 수신할 수 있다. 트랜지스터(TR1)는 비트 라인(BL[1])과 노드(N1) 사이에 연결될 수 있다. 트랜지스터(TR1)는 노드(N1)의 데이터 Q를 비트 라인(BL[1])으로 전달하도록 구성될 수 있다.
트랜지스터(TR2)의 게이트 단은 워드 라인(WLB[1])을 통해 특정 논리 값을 갖는 데이터를 수신할 수 있다. 트랜지스터(TR2)는 비트 라인(BLB[1])과 노드(N2) 사이에 연결될 수 있다. 트랜지스터(TR2)는 노드(N2)의 데이터 QB를 비트 라인(BLB[1])으로 전달하도록 구성될 수 있다.
인버터들(INV1 및 INV2)은 노드들(N1 및 N2) 상에 데이터를 래치(latch)하도록 구성될 수 있다. 인버터들(INV1 및 INV2)은 노드들(N1 및 N2) 사이에 연결될 수 있다. 인버터(INV1)는 노드(N1) 상의 데이터 Q의 논리 값을 반전하여 노드(N2) 상에 데이터 QB를 형성하도록 구성될 수 있다. 인버터(INV2)는 노드(N2) 상의 데이터 QB의 논리 값을 반전하여 노드(N1) 상에 데이터 Q1를 형성하도록 구성될 수 있다.
따라서, 노드(N1)에 데이터 Q가 래치되고 노드(N2)에 데이터 QB가 래치될 수 있다. 데이터 Q의 논리 값과 데이터 QB의 논리 값은 상보적일 수 있다. 메모리 셀(1221)은 인버터들(INV1 및 INV2)의 래치 동작을 통해 가중치를 저장할 수 있다. 예로서, 메모리 셀(1221)은 가중치를 데이터 Q의 논리 값, 및 데이터 QB의 논리 값에 대해 상보적인 논리 값으로서 저장할 수 있다.
트랜지스터들(TR1 및 TR2) 각각은 스위치로서 동작하도록 구성될 수 있다. 예로서, 트랜지스터(TR1)는 워드 라인(WL[1])을 통해 수신되는 전압의 특정 논리 값에 응답하여 턴 온 되고, 노드(N1)와 비트 라인(BL[1]) 사이의 연결을 제어할 수 있다. 트랜지스터(TR2)는 워드 라인(WLB[1])을 통해 수신되는 전압의 특정 논리 값에 응답하여 턴 온 되고, 노드(N2)와 비트 라인(BLB[1]) 사이의 연결을 제어할 수 있다.
예로서, 워드 라인(WL[1])을 통해 수신되는 데이터의 논리 값과 워드 라인(WLB[1])을 통해 수신되는 데이터의 논리 값은 상보적일 수 있다. 따라서, 워드 라인들(WL[1] 및 WLB[1])을 통해 수신되는 데이터들에 의해, 트랜지스터들(TR1 및 TR2) 중 하나가 턴 온 되고, 다른 하나는 턴 오프될 수 있다.
트랜지스터(TR1)가 턴 온 되고 트랜지스터(TR2)가 턴 오프 되는 경우, 노드(N1)로부터 비트 라인(BL[1])으로 전류가 흐르고, 노드(N1)에 래치된 데이터 Q가 비트 라인(BL[1])을 통해 출력될 수 있다. 트랜지스터(TR2)가 턴 온 되고 트랜지스터(TR1)가 턴 오프 되는 경우, 노드(N2)로부터 비트 라인(BLB[1])으로 전류가 흐르고, 노드(N2)에 래치된 데이터 Q가 비트 라인(BL[1])을 통해 출력될 수 있다.
이하, 도 4 내지 도 7을 참조하여 메모리 셀(1221)의 예시적인 동작들이 좀 더 구체적으로 설명될 것이다. 도 2에서 메모리 셀(1221)을 제외한 다른 메모리 셀들의 동작들은 메모리 셀(1221)의 동작들과 유사하게 수행되므로 이하 중복되는 설명은 생략된다.
도 4는 도 2의 메모리 셀의 예시적인 동작들을 설명하기 위한 블록도 이다.
도 4의 예에서, 메모리 셀(1221)을 통해, 논리 값 "1"의 데이터가 입력될 수 있다. 논리 값 "1"의 데이터를 메모리 셀(1221)에 입력하기 위해, 도 1의 전압 제어 회로(1400)는 로우 디코더(1500)를 통해 워드 라인들(WL[1] 및 WLB[1])에 전압들을 각각 인가할 수 있다. 예로서, 전압 제어 회로(1400)는 워드 라인(WL[1])을 통해 논리 값 "1"에 대응하는 전압을 인가하고, 워드 라인(WLB[1])을 통해 논리 값 "-1"에 대응하는 전압을 인가할 수 있다.
예로서, 논리 값 "1"에 대응하는 전압은 양의 레벨을 갖는 동작 전압이고, 논리 값 "-1"에 대응하는 전압은 접지 전압일 수 있으나, 본 발명은 이에 한정되지 않으며, 전자 장치(1000)의 설계자는 트랜지스터들(TR1 및 TR2)의 문턱 전압 등을 고려하여 워드 라인들(WL[1] 및 WLB[1])을 통해 인가될 전압의 레벨들을 설정할 수 있다.
도 1을 참조하여 설명된 바와 같이, 메모리 셀(1221)은 트레이닝 동작 등을 통해, 가중치를 데이터 Q의 논리 값으로서 저장할 수 있다. 예로서, BNN 알고리즘에 기반한 트레이닝 동작에 의해, 메모리 셀(1221)은 "1" 또는 "-1"의 가중치를 저장할 수 있다. 예로서, 메모리 셀(1221)은 가중치 "1"을 데이터 Q의 논리 값 "1" 및 데이터 QB의 논리 값 “-1”으로서 저장할 수 있다.
논리 값 "1"의 데이터를 저장하기 위해, 트랜지스터(TR1)의 게이트 단을 통해 워드 라인(WL[1])으로부터 논리 값 "1"에 대응하는 전압이 수신되고, 트랜지스터(TR2)의 게이트 단을 통해 워드 라인(WLB[1])으로부터 논리 값 "-1"에 대응하는 전압이 수신될 수 있다.
게이트 단들을 통해 수신되는 전압들에 응답하여 트랜지스터(TR1)가 턴 온되고, 트랜지스터(TR2)가 턴 오프될 수 있다. 따라서, 트랜지스터(TR1)를 통해 노드(N1)에 래치된 논리 값 "1"의 데이터가 비트 라인(BL[1])으로 출력될 수 있다. 즉, 메모리 셀(1221)은 입력되는 논리 값 "1"의 데이터와 저장된 가중치 "1"에 기초하여 논리 값 "1"의 데이터를 비트 라인(BL[1])을 통해 출력할 수 있다.
도 5는 도 2의 메모리 셀의 예시적인 동작들을 설명하기 위한 블록도 이다.
도 5의 예에서, 메모리 셀(1221)을 통해, 논리 값 "1"의 데이터가 입력될 수 있다. 예로서, 논리 값 "1"의 데이터를 메모리 셀(1221)에 입력하기 위해, 도 1의 전압 제어 회로(1400)는 로우 디코더(1500)를 통해 워드 라인들(WL[1] 및 WLB[1])에 전압들을 각각 인가할 수 있다. 예로서, 전압 제어 회로(1400)는 워드 라인(WL[1])을 통해 논리 값 "1"에 대응하는 전압을 인가하고, 워드 라인(WLB[1])을 통해 논리 값 "-1"에 대응하는 전압을 인가할 수 있다.
예로서, 메모리 셀(1221)은 가중치 "-1"을 데이터 Q의 논리 값 "-1" 및 데이터 QB의 논리 값 “1”로서 저장할 수 있다. 논리 값 "1"의 데이터를 저장하기 위해, 트랜지스터(TR1)의 게이트 단을 통해 워드 라인(WL[1])으로부터 논리 값 "1"에 대응하는 전압이 수신되고, 트랜지스터(TR2)의 게이트 단을 통해 워드 라인(WLB[1])으로부터 논리 값 "-1"에 대응하는 전압이 수신될 수 있다.
게이트 단들을 통해 수신되는 전압들에 응답하여 트랜지스터(TR1)가 턴 온되고, 트랜지스터(TR2)가 턴 오프될 수 있다. 따라서, 트랜지스터(TR1)를 통해 노드(N1)에 래치된 논리 값 "-1"의 데이터가 비트 라인(BL[1])으로 출력될 수 있다. 즉, 메모리 셀(1221)은 입력되는 논리 값 "1"의 데이터와 저장된 가중치 "-1"에 기초하여 논리 값 "-1"의 데이터를 비트 라인(BL[1])을 통해 출력할 수 있다.
도 6은 도 2의 메모리 셀의 예시적인 동작들을 설명하기 위한 블록도 이다.
도 6의 예에서, 메모리 셀(1221)을 통해, 논리 값 "-1"의 데이터가 입력될 수 있다. 예로서, 논리 값 "-1"의 데이터를 메모리 셀(1221)에 입력하기 위해, 도 1의 전압 제어 회로(1400)는 로우 디코더(1500)를 통해 워드 라인들(WL[1] 및 WLB[1])에 전압들을 각각 인가할 수 있다. 예로서, 전압 제어 회로(1400)는 워드 라인(WL[1])을 통해 논리 값 "-1"에 대응하는 전압을 인가하고, 워드 라인(WLB[1])을 통해 논리 값 "1"에 대응하는 전압을 인가할 수 있다.
예로서, 메모리 셀(1221)은 가중치 "1"을 데이터 Q의 논리 값 "1" 및 데이터 QB의 논리 값 “-1”로서 저장할 수 있다. 논리 값 "-1"의 데이터를 저장하기 위해, 트랜지스터(TR1)의 게이트 단을 통해 워드 라인(WL[1])으로부터 논리 값 "-1"에 대응하는 전압이 수신되고, 트랜지스터(TR2)의 게이트 단을 통해 워드 라인(WLB[1])으로부터 논리 값 "1"에 대응하는 전압이 수신될 수 있다.
게이트 단들을 통해 수신되는 전압들에 응답하여 트랜지스터(TR1)가 턴 오프되고, 트랜지스터(TR2)가 턴 온될 수 있다. 따라서, 트랜지스터(TR2)를 통해 노드(N2)에 래치된 논리 값 "-1"의 데이터가 비트 라인(BLB[1])으로 출력될 수 있다. 즉, 메모리 셀(1221)은 입력되는 논리 값 "-1"의 데이터와 저장된 가중치 "1"에 기초하여 논리 값 "-1"의 데이터를 비트 라인(BLB[1])을 통해 출력할 수 있다.
도 7은 도 2의 메모리 셀의 예시적인 동작들을 설명하기 위한 블록도 이다.
도 7의 예에서, 메모리 셀(1221)을 통해, 논리 값 "-1"의 데이터가 입력될 수 있다. 예로서, 논리 값 "-1"의 데이터를 메모리 셀(1221)에 입력하기 위해, 도 1의 전압 제어 회로(1400)는 로우 디코더(1500)를 통해 워드 라인들(WL[1] 및 WLB[1])에 전압들을 각각 인가할 수 있다. 예로서, 전압 제어 회로(1400)는 워드 라인(WL[1])을 통해 논리 값 "-1"에 대응하는 전압을 인가하고, 워드 라인(WLB[1])을 통해 논리 값 "1"에 대응하는 전압을 인가할 수 있다.
예로서, 메모리 셀(1221)은 가중치 "-1"을 데이터 Q의 논리 값 "-1" 및 데이터 QB의 논리 값 "1"로서 저장할 수 있다. 논리 값 "-1"의 데이터를 저장하기 위해, 트랜지스터(TR1)의 게이트 단을 통해 워드 라인(WL[1])으로부터 논리 값 "-1"에 대응하는 전압이 수신되고, 트랜지스터(TR2)의 게이트 단을 통해 워드 라인(WLB[1])으로부터 논리 값 "1"에 대응하는 전압이 수신될 수 있다.
게이트 단들을 통해 수신되는 전압들에 응답하여 트랜지스터(TR1)가 턴 오프되고, 트랜지스터(TR2)가 턴 온될 수 있다. 따라서, 트랜지스터(TR2)를 통해 노드(N2)에 래치된 논리 값 "1"의 데이터가 비트 라인(BLB[1])으로 출력될 수 있다. 즉, 메모리 셀(1221)은 입력되는 논리 값 "-1"의 데이터와 저장된 가중치 "-1"에 기초하여 논리 값 "1"의 데이터를 비트 라인(BLB[1])을 통해 출력할 수 있다.
즉, 도 4 내지 도 7을 참조하면, 메모리 셀(1221)에 입력되는 데이터의 논리 값과 메모리 셀(1221)에 저장된 가중치에 기초하여 XNOR 연산이 수행될 수 있다. 이하, 표 1은 메모리 셀(1221)에 의해 수행되는 XNOR 연산의 진리 표를 나타낸다.
IN Q OUT
1 1 1
1 -1 -1
-1 1 -1
-1 -1 1
단, 표 1에서, "IN"은 메모리 셀(1221)로 입력되는 데이터의 논리 값을 나타내고, "Q"는 메모리 셀(1221)에 저장된 데이터의 논리 값(가중치)을 나타내고, "OUT"은 메모리 셀(1221)로부터 출력되는 데이터의 논리 값을 나타낸다.
도 4 내지 도 7을 참조하여 설명된 바와 같이, 메모리 셀(1221)과 연결된 워드 라인(WL[1] 및 WLB[1])에 전압을 인가하는 동작에만 기초하여, XNOR 연산이 효율적으로 수행될 수 있다. 즉, 전자 장치(1000)에 의해, XNOR 연산에 기반한 바이너리 뉴럴 네트워크 시스템이 효율적으로 구현될 수 있다.
메모리 셀(1221)로부터 출력되는 논리 값 "1" 또는 "-1"의 데이터는, 특정 레벨의 전류 및/또는 전압으로서 전달될 수 있다. 예로서, 도 1의 컬럼(CL1)에 포함된 메모리 셀들(1221 내지 122m) 각각은 도 4 내지 도 7을 참조하여 설명된 동작들을 통해 특정 레벨의 전류 및/또는 전압(즉, 특정 논리 값을 갖는 데이터)을 출력하고, 메모리 셀들(1221 내지 122m)로부터 출력되는 데이터의 합에 대응하는 전압들(VOUT11 및 VOUT12)이 비트 라인들(BL[1] 및 BLB[1])을 통해 각각 출력될 수 있다.
도 10 및 도 11을 참조하여, 하나의 컬럼에 포함된 메모리 셀들로부터 출력되는 데이터를 합산하고, 합산된 데이터를 나타내는 전압을 출력하기 위한 예시적인 동작들이 좀 더 구체적으로 설명될 것이다.
도 8은 도 1의 센스 증폭기 블록의 예시적인 구성을 보여주는 블록도 이다.
도 8을 참조하면, 센스 증폭기 블록(1300)은 합산 회로(1310) 및 센스 증폭기 회로(1320)를 포함할 수 있다. 합산 회로(1310)는 비트 라인들(BL[1] 및 BL[n] 내지 BLB[1] 및 BLB[n])로부터 전압들(VOUT11 및 VOUT12 내지 VOUTn1 및 VOUTn2)을 수신할 수 있다.
합산 회로(1310)는 전압들(VOUT11 및 VOUT12 내지 VOUTn1 및 VOUTn2)에 기초하여 전압들(VSUM1 내지 VSUMn)을 출력할 수 있다. 예로서, 합산 회로(1310)는 전압들(VOUT11 및 VOUT12)에 기초하여 전압(VSUM1)을 출력하고, 전압들(VOUT21 및 VOUT22)에 기초하여 전압(VSUM2)을 출력하고, 전압들(VOUTn1 및 VOUTn2)에 기초하여 전압(VSUMn)을 출력할 수 있다.
예로서, 전압(VSUM1)의 레벨은 전압들(VOUT11 및 VOUT12)의 레벨들의 합에 대응할 수 있다. 유사하게, 전압들(VSUM2 내지 VSUMn)의 레벨들은 전압들(VOUT21 및 VOUT22 내지 VOUTn1 및 VOUTn2)의 레벨들에 의해 결정될 수 있다. 도 9를 참조하여, 합산 회로(1310)의 예시적인 구성 및 동작들이 좀 더 구체적으로 설명될 것이다.
전압들(VOUT11 및 VOUT12 내지 VOUTn1 및 VOUTn2)의 레벨들은 메모리 셀 어레이(1200)의 컬럼들로부터 출력되는 데이터의 합들에 각각 대응하므로, 전압들(VSUM2 내지 VSUMn)의 레벨들 또한 메모리 셀 어레이(1200)의 컬럼들로부터 출력되는 데이터의 합들에 각각 대응할 수 있다.
센스 증폭기 회로(1320)는 합산 회로(1310)로부터 전압들(VSUM1 내지 VSUMn)을 수신할 수 있다. 센스 증폭기 회로(1320)는 전압들(VSUM1 내지 VSUMn)의 레벨들을 증폭하여 전압들(VSUM1 내지 VSUMn)의 데이터를 나타내는 신호들(OUT1 내지 OUTn)을 출력할 수 있다. 도 9를 참조하여, 센스 증폭기 회로(1320)의 예시적인 구성 및 동작들이 좀 더 구체적으로 설명될 것이다.
도 9는 도 8의 센스 증폭기 블록의 예시적인 구성을 보여주는 회로도 이다.
도 9를 참조하면, 합산 회로(1310)는 트랜스미션 게이트들(1311_1 및 1311_2 내지 131n_1 및 131n_2), 저항(R)들을 포함할 수 있다. 센스 증폭기 회로(1320)는 증폭기들(1321 내지 132n)을 포함할 수 있다.
하나의 컬럼과 연결된 비트 라인들로부터 출력되는 전압들은 트랜스미션 게이트들(1311_1 및 1311_2 내지 131n_1 및 131n_2)을 통해 하나의 노드로 출력될 수 있다. 트랜스미션 게이트들(1311_1 및 1311_2 내지 131n_1 및 131n_2)은 센스. 예로서, 트랜스미션 게이트들(1311_1 및 1311_2 내지 131n_1 및 131n_2)은 제어 로직 회로(1100)로부터 읽기 신호(RD)를 수신할 수 있다. 트랜스미션 게이트들(1311_1 및 1311_2 내지 131n_1 및 131n_2) 각각은 읽기 신호(RD)에 응답하여 전압들(VOUT11 및 VOUT12 내지 VOUTn1 및 VOUTn2)을 전달하기 위해 턴 온 될 수 있다.
예로서, 도 1의 컬럼(CL1)과 연결된 비트 라인(BL[1])은 트랜스미션 게이트(1311_1)를 통해 노드(N11)와 연결되고, 도 1의 컬럼(CL1)과 연결된 비트 라인(BLB[1])은 트랜스미션 게이트(1311_2)를 통해 노드(N11)와 연결될 수 있다. 전압(VOUT11)은, 읽기 신호(RD)에 응답하여 턴 온된 트랜스미션 게이트(1311_1)를 통해, 노드(N11)로 전달될 수 있다. 전압(VOUT12)은 읽기 신호(RD)에 응답하여 턴 온된 트랜스미션 게이트(1311_2)를 통해, 노드(N11)로 전달될 수 있다.
따라서, 노드(N11) 상에 형성되는 전압(VSUM1)의 레벨은 전압들(VOUT11 및 VOUT12)의 레벨들의 합에 대응할 수 있다. 전압들(VOUT11 및 VOUT12)의 레벨들 각각은 비트 라인들(BL[1] 및 BLB[1])을 통해 컬럼(CL1)으로부터 출력되는 데이터의 합들에 각각 대응하므로, 전압(VSUM1)의 레벨은 컬럼(CL1)으로부터 출력되는 데이터의 합에 대응할 수 있다.
유사하게, 컬럼들(CL2 내지 CLn)로부터 출력되는 전압들(VOUT21 및 VOUT22 내지 VOUTn1 및 VOUTn2)은 트랜스미션 게이트들(1312_1 및 1312_2 내지 131n_1 및 131n_2)을 통해 노드들(N12 내지 N1n)로 각각 전달될 수 있으므로 이하 중복되는 설명은 생략된다. 따라서, 전압들(VSUM2 내지 VSUMn)의 레벨들은 컬럼들(CL2 내지 CLn)에 의해 출력되는 데이터의 합들에 각각 대응할 수 있다.
전압들(VSUM1 내지 VSUMn)은 센스 증폭기 회로(1320)로 출력될 수 있다. 또한, 저항(R)들을 통해 동작 전압(VDD)이 노드들(N11 내지 N1n)로 인가될 수 있다. 예로서, 동작 전압(VDD)은 센스 증폭기 블록(1300) 외부의 전자 회로(예컨대, 전압 생성 회로 또는 전압 레귤레이터 회로)로부터 수신될 수 있다. 도 11을 참조하여 설명될 것과 같이, 동작 전압(VDD)의 공급단으로부터 흐르는 전류에 의해, 노드들(N11 내지 N1n)에 형성되는 전압들이 풀 업(pull-up) 또는 풀 다운(pull-down)될 수 있다.
센스 증폭기 회로(1320)의 증폭기들(1321 내지 132n)은 기준 전압(VREF)을 수신할 수 있다. 예로서, 기준 전압(VREF)은 비교의 기준으로서 PVT(Process-Voltage-Temperature) 변화에 둔감한 특성을 가질 수 있다. 예로서, 증폭기들(1321 내지 132n)은 센스 증폭기 블록(1300) 외부의 기준 전압 생성 회로로부터 기준 전압(VREF)을 수신할 수 있다. 또는, 도 12를 참조하여 설명될 것과 같이, 증폭기들(1321 내지 132n)은 메모리 셀 어레이(1200)의 특정 컬럼으로부터 기준 전압(VREF)을 수신할 수 있다.
센스 증폭기 회로(1320)의 증폭기들(1321 내지 132n)은 합산 회로(1310)로부터 전압들(VSUM1 내지 VSUMn)을 각각 수신할 수 있다. 증폭기들(1321 내지 132n)은 전압들(VSUM1 내지 VSUMn)의 레벨들과 기준 전압(VREF)의 레벨 사이의 비교에 기초하여 동작할 수 있다. 증폭기들(1321 내지 132n)은, 전압(VSUM1)의 레벨과 기준 전압(VREF)의 레벨 사이의 차이를 증폭시켜 신호들(OUT1 내지 OUTn)을 출력할 수 있다.
예로서, 전압(VSUM1)의 레벨이 기준 전압(VREF)의 레벨보다 클 경우, 증폭기(1321)는 전압(VSUM1)의 레벨을 양의 방향으로(positively) 증폭시킬 수 있다. 따라서, 전압(VSUM1)의 레벨은 증가할 수 있다. 예로서, 전압(VSUM1)의 레벨이 기준 전압(VREF)의 레벨보다 작을 경우, 증폭기(1321)는 전압(VSUM1)의 레벨을 음의 방향으로(negatively) 증폭시킬 수 있다. 따라서, 전압(VSUM1)의 레벨은 감소할 수 있다.
전압들(VSUM1 내지 VSUMn) 각각은 메모리 셀 어레이(1200)의 메모리 셀들로부터 출력되는 데이터에 기초하여 생성되기 때문에, 전압들(VSUM1 내지 VSUMn) 각각은 특정 논리 값(예컨대, 논리 값 "1" 또는 논리 값 "-1")에 대응하는 레벨을 가질 수 있다. 증폭기들(1321 내지 132n)에 의해 논리 값 "1"의 레벨을 갖는 전압이 양의 방향으로 증폭되고, 논리 값 "-1"의 레벨을 갖는 전압을 음의 방향으로 증폭될 수 있다. 따라서, 논리 값 "1"에 대응하는 레벨과 논리 값 "-1"에 대응하는 레벨 사이의 차이가 증가하고, 이에 따라, 센스 증폭 블록(1300) 후단의 다른 전자 회로들은 신호들(OUT1 내지 OUTn) 각각의 논리 값을 명확하게 판별할 수 있다.
도 10은 도 2의 컬럼에 포함되는 메모리 셀들의 예시적인 동작들을 보여주는 개념도 이다.
전자 장치(1000)에 대한 트레이닝이 수행됨에 따라, 컬럼(CL1)의 메모리 셀들(1221 내지 122m) 각각은 가중치를 저장할 수 있다. 예로서, 메모리 셀(1221)은 가중치 "1"을 저장하고, 메모리 셀(1222)은 가중치 "-1"을 저장하고, 메모리 셀(1223)은 가중치 "1"을 저장하고, 메모리 셀(122m)은 가중치 "-1"을 저장할 수 있다.
예로서, 워드 라인(WL[1])을 통해 트랜지스터를 턴 온 시키기 위한 전압이 수신되고, 워드 라인(WLB[1])을 통해 트랜지스터를 턴 오프시키기 위한 전압이 수신됨에 따라, 메모리 셀(1221)에 논리 값 "1"의 데이터가 입력될 수 있다. 메모리 셀(1221)은, 도 4를 참조하여 설명된 동작들과 유사한 동작들을 수행하여, 노드(N11)를 통해 논리 값 "1"의 데이터 Q를 출력할 수 있다.
예로서, 워드 라인(WL[2])을 통해 트랜지스터를 턴 온 시키기 위한 전압이 수신되고, 워드 라인(WLB[2])을 통해 트랜지스터를 턴 오프시키기 위한 전압이 수신됨에 따라, 메모리 셀(1222)에 논리 값 "1"의 데이터가 입력될 수 있다. 메모리 셀(1222)은, 도 5를 참조하여 설명된 동작들과 유사한 동작들을 수행하여, 노드(N12)를 통해 논리 값 "-1"의 데이터 Q를 출력할 수 있다.
예로서, 워드 라인(WL[3])을 통해 트랜지스터를 턴 오프 시키기 위한 전압이 수신되고, 워드 라인(WLB[3])을 통해 트랜지스터를 턴 온시키기 위한 전압이 수신됨에 따라, 메모리 셀(1223)에 논리 값 "-1"의 데이터가 입력될 수 있다. 메모리 셀(1223)은, 도 6을 참조하여 설명된 동작들과 유사한 동작들을 수행하여, 노드(N23)를 통해 논리 값 "-1"의 데이터 QB를 출력할 수 있다.
예로서, 워드 라인(WL[m])을 통해 트랜지스터를 턴 오프 시키기 위한 전압이 수신되고, 워드 라인(WLB[m])을 통해 트랜지스터를 턴 온시키기 위한 전압이 수신됨에 따라, 메모리 셀(122m)에 논리 값 "-1"의 데이터가 입력될 수 있다. 메모리 셀(122m)은, 도 7을 참조하여 설명된 동작들과 유사한 동작들을 수행하여, 노드(N2m)를 통해 논리 값 "-1"의 데이터 QB를 출력할 수 있다.
컬럼(CL1)의 메모리 셀들 중 논리 값 "1"의 데이터를 입력 받은 메모리 셀들(예컨대, 메모리 셀들(1221 및 1222))로부터 출력된 데이터에 기초하여, 비트 라인(BL[1])을 통해 전압(VOUT11)이 출력될 수 있다. 따라서, 전압(VOUT11)의 레벨은 비트 라인(BL[1])을 통해 출력되는 데이터의 합에 대응할 수 있다.
컬럼(CL1)의 메모리 셀들 중 논리 값 "-1"의 데이터를 입력 받은 메모리 셀들(예컨대, 메모리 셀들(1223 및 122m))로부터 출력된 데이터에 기초하여, 비트 라인(BLB[1])을 통해 전압(VOUT12)이 출력될 수 있다. 따라서, 전압(VOUT12)의 레벨은 비트 라인(BLB[1])을 통해 출력되는 데이터의 합에 대응할 수 있다.
도 8 및 도 9를 참조하여 설명된 바와 같이, 합산 회로(1310)는 전압들(VOUT11 및 VOUT12)의 레벨들의 합에 대응하는 레벨을 갖는 전압(VSUM1)을 출력할 수 있다. 센스 증폭기 회로(1320)는 전압(VSUM1)의 레벨을 증폭시켜 신호(OUT1)를 출력할 수 있다.
도 11은 도 2의 컬럼에 포함되는 메모리 셀들의 예시적인 동작들을 보여주는 개념도 이다.
도 11의 예에서, 논리 값 "1"의 데이터가 메모리 셀들(예컨대, 메모리 셀(1221))에 입력될 수 있다. 메모리 셀들 각각은 입력되는 데이터에 응답하여 가중치 "1"에 대응하는 논리 값을 갖는 데이터를 비트 라인을 통해 출력할 수 있다. 예로서, 논리 값 "1"에 응답하여 턴 온된 트랜지스터를 통해, 논리 값 "1"에 대응하는 레벨의 전류들(예컨대, 전류(I1))이 비트 라인을 통해 출력될 수 있다.
따라서, 메모리 셀들로부터 출력되는 전류들(즉, 논리 값 "1"에 대응하는 전류들)의 합이 전류(ISUM1)로서 노드(N11)로 출력될 수 있다. 예로서, 논리 값 "1"의 데이터가 입력되는 메모리 셀의 개수가 "P"인 경우, 전류(ISUM1)의 레벨은 전류(I1)의 레벨 "I1"의 "P"배(즉, "P*I1")일 수 있다. 메모리 셀들로부터 출력되는 전류들의 레벨들은, 메모리 셀들로부터 출력되는 데이터의 논리 값들에 각각 대응하므로, 전류(ISUM1)의 레벨은 메모리 셀들로부터 출력되는 데이터의 합에 대응할 수 있다.
도 11의 예에서, 논리 값 "-1"의 데이터가 메모리 셀들(예컨대, 메모리 셀(1222))에 입력될 수 있다. 메모리 셀들 각각은 입력되는 데이터에 응답하여 가중치 "-1"에 대응하는 논리 값을 갖는 데이터를 비트 라인을 통해 출력할 수 있다. 예로서, 논리 값 "1"에 응답하여 턴 온된 트랜지스터를 통해, 논리 값 "-1"에 대응하는 레벨의 전류들(예컨대, 전류(I2))이 비트 라인을 통해 출력될 수 있다.
따라서, 메모리 셀들로부터 출력되는 전류들(즉, 논리 값 "-1"에 대응하는 전류들)의 합이 전류(ISUM2)로서 노드(N11)로 출력될 수 있다. 예로서, 논리 값 "-1"의 데이터가 입력되는 메모리 셀의 개수가 "L"인 경우, 전류(ISUM2)의 레벨은 전류(I2)의 레벨 "I2"의 "L"배(즉, "L"*I2")일 수 있다. 메모리 셀들로부터 출력되는 전류들의 레벨들은, 메모리 셀들로부터 출력되는 데이터의 논리 값들에 각각 대응하므로, 전류(ISUM2)의 레벨은 메모리 셀들로부터 출력되는 데이터의 합에 대응할 수 있다.
전류들(ISUM1 및 ISUM2)이 흐름에 따라, 동작 전압(VDD)의 공급단으로부터 저항(R)을 통해 전류(ISUM3)가 흐를 수 있다. 전류(ISUM3)의 레벨은 전류들(ISUM1 및 ISUM2)의 레벨들의 합에 대응할 수 있다. 전류들(ISUM1 및 ISUM2)의 레벨들은 컬럼(CL1)의 메모리 셀들로부터 출력되는 데이터의 합에 대응하므로, 전류(ISUM3)의 레벨은 컬럼(CL1)의 메모리 셀들로부터 출력되는 데이터의 합에 대응할 수 있다.
전류들(ISUM1, ISUM2, 및 ISUM3)에 의해 노드(N11)에 전압(VSUM1)이 형성될 수 있다. 예로서, 전류(ISUM1)가 양의 레벨을 갖고 전류(ISUM2)가 음의 레벨을 갖는 경우, 전압(VSUM1)의 레벨은, 전류들(ISUM1, ISUM2, 및 ISUM3)에 의해 풀 업 및 풀 다운될 수 있다. 따라서, 전압(VSUM1)의 레벨은 컬럼(CL1)의 메모리 셀들로부터 출력되는 데이터의 합에 대응할 수 있다.
도 12는 인 메모리 캘리브레이션(In-Memory Calibration) 및 기준 전압의 생성을 위한 예시적인 데이터를 저장하는 도 2의 메모리 셀들을 보여주는 개념도 이다.
예로서, 메모리 셀 어레이(1200)에 내재된 노이즈의 영향으로 메모리 셀 어레이(1200)로부터 출력되는 전압의 레벨이 바이어스되고, 이에 따라, 전자 장치(1000)로부터 출력되는 신호에 노이즈가 포함될 수 있다. 노이즈의 영향을 제거하기 위한 인 메모리 캘리브레이션이 수행되도록 전자 장치(100)가 설계될 수 있다.
예로서, 설계자는 메모리 셀 어레이(1200)에 대한 다양한 유형의 테스트 동작들을 통해 메모리 셀 어레이(1200)에 내재된 결정적 노이즈(deterministic noise)를 측정할 수 있다. 측정된 노이즈에 기초하여, 인 메모리 캘리브레이션을 위해 요구되는 데이터 및 그 데이터를 저장하기 위한 메모리 셀들이 결정될 수 있다. 예로서, 인 메모리 캘리브레이션을 위해 요구되는 데이터가 저장될 메모리 셀들의 개수가 결정될 수 있다.
예로서, 컬럼(CL1)에 대해, 3개의 메모리 셀들에 가중치 "1"이 저장되고 1개의 메모리 셀에 가중치 "-1"이 저장될 수 있다. 이후, 고정된 데이터가 워드 라인들을 통해 인 메모리 캘리브레이션을 위한 4개의 메모리 셀들에 입력될 수 있다. 따라서, 전압(VSUM1)의 레벨은, 4개의 메모리 셀들로부터 출력되는 데이터의 합 "+2"에 대응하는 오프셋을 포함할 수 있다.
예로서, 컬럼(CL2)에 대해, 3개의 메모리 셀들에 가중치 "-1"이 저장되고 1개의 메모리 셀에 가중치 "1"이 저장될 수 있다. 이후, 고정된 데이터가 워드 라인들을 통해 인 메모리 캘리브레이션을 위한 4개의 메모리 셀들에 입력될 수 있다. 따라서, 전압(VSUM2)의 레벨은, 4개의 메모리 셀들로부터 출력되는 데이터의 합 "-2"에 대응하는 오프셋을 포함할 수 있다.
따라서, 특정 컬럼에 대해, 가중치 "1"을 저장하는 메모리 셀의 개수와 가중치 "-1"을 저장하는 메모리 셀의 개수는, 그 컬럼으로부터 출력되는 전압의 오프셋과 관련될 수 있다. 예로서, 가중치 "1"을 저장하는 메모리 셀의 개수가 많을 수록 출력되는 전압의 오프셋은 증가하고, 가중치 "-1"을 저장하는 메모리 셀의 개수가 많을 수록 출력되는 전압의 오프셋은 감소할 수 있다.
도 12의 예에서, 컬럼(CLn)은 기준 전압(VREF)을 생성하도록 설계될 수 있다. 예로서, 컬럼(CLn)에 포함된 메모리 셀들 중 절반의 메모리 셀들은 논리 값 "1"의 데이터를 저장하고, 나머지 절반의 메모리 셀들은 논리 값 "-1"의 데이터를 저장하도록 설계될 수 있다. 논리 값 "1"을 저장하는 메모리 셀의 개수와 논리 값 "-1"의 데이터를 저장하는 메모리 셀의 개수가 서로 동일하므로, 컬럼(CLn)으로부터 기준 값 "0"에 대응하는 레벨을 갖는 기준 전압(VREF)이 출력될 수 있다. 도 12를 참조하여, 기준 값 "0"에 대응하는 레벨을 갖는 기준 전압(VREF)이 설명되었으나, 기준 전압(VREF)의 레벨은 다양하게 변경될 수 있음이 이해될 것이다.
도 13은 도 1의 전자 장치를 포함하는 예시적인 전자 장치를 보여주는 블록도 이다.
도 13은 본 발명의 실시 예에 따른 뉴럴 네트워크 시스템을 포함하는 예시적인 전자 장치를 보여주는 블록도 이다.
전자 장치(2000)는 도 1의 전자 장치(1000)를 포함할 수 있다. 예로서, 전자 장치(2000)는 개인용 컴퓨터, 워크스테이션, 노트북 컴퓨터, 이동식 장치 등 중 하나일 수 있다. 도 13을 참조하면, 전자 장치(2000)는 프로세서(2100), 메모리(2200), 스토리지(2300), 통신 장치(2400), 사용자 인터페이스(2500), 뉴럴 네트워크 시스템(2600), 및 버스(2700)를 포함할 수 있다.
전자 장치(2000)는 도 13에 나타나지 않은 다른 구성 요소(예컨대, 다양한 센서들 또는 파워 서플라이 등)들을 더 포함할 수 있다. 또는, 전자 장치(2000)는 도 13에 나타낸 구성 요소들 중 하나 이상을 포함하지 않을 수 있다.
프로세서(2100)는 전자 장치(2000)의 전반적인 동작들을 제어할 수 있다. 프로세서(2100)는 중앙제어장치로써 전자 장치(2000)의 동작에 필요한 연산들을 처리할 수 있다. 예로서, 프로세서(2100)는 전자 장치(2000)의 동작들을 제어하기 위한 데이터를 처리할 수 있다.
예로서, 프로세서(2100)는 범용 프로세서, 워크스테이션 프로세서, 어플리케이션(Application) 프로세서 등 중 하나일 수 있다. 프로세서(2100)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어(Multi-Core)를 포함할 수 있다. 예로서, 프로세서(2100)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다.
프로세서(2100)는 도 1의 프로세서(10)를 포함할 수 있다. 프로세서(10)는 뉴럴 네트워크 시스템(2600)의 트레이닝을 위한 입력 데이터를 생성할 수 있다. 또는, 프로세서(2100)는 사용자에 의해 입력되는 문제에 대응하는 입력 데이터를 생성할 수 있다. 프로세서(2100)는 문제에 대응하는 결과 데이터를 획득하기 위한 명령을 출력할 수 있다.
메모리(2200)는 프로세서(2100)에 의해 처리된 또는 처리될 데이터를 저장할 수 있다. 예로서, 메모리(2200)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 플래시(Flash) 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. 또는, 메모리(2200)는 이종의 메모리들을 포함할 수 있다.
스토리지(2300)는 전원 공급과 관계없이 데이터를 저장할 수 있다. 예로서, 스토리지(2300)는 HDD(Hard Disk Drive), SSD(Solid State Drive), SD(Secure Digital) 카드, USB(Universal Serial Bus) 메모리 장치 등과 같이 불휘발성 메모리를 포함하는 기록 매체(Storage Medium)일 수 있다.
통신 장치(2400)는 송신부 및 수신부를 포함할 수 있다. 전자 장치(2000)는 통신 장치(2400)에 의해 다른 전자 장치와 통신하여 데이터를 송신 및/또는 수신 할 수 있다. 사용자 인터페이스(2500)는 사용자와 전자 장치(2000) 사이에서 명령 또는 데이터의 입/출력을 전달할 수 있다. 예로서, 사용자 인터페이스(2500)는 키보드, 마우스, 터치스크린, 스캐너, 조이스틱, 음성인식장치, 동작인식장치 또는 안구인식장치 등과 같은 입력장치, 및/또는 모니터, 디스플레이 장치, 프로젝터, 스피커 또는 플로터 등의 출력장치 등과 같은 물리 장치를 포함할 수 있다.
예로서, 사용자는 문제에 대한 답을 얻기 위해, 사용자 인터페이스(2500)를 통해 명령을 입력할 수 있다. 사용자 인터페이스(2500)는 문제에 대응하는 답과 관련되는 정보를 사용자에게 제공할 수 있다.
뉴럴 네트워크 시스템(2600)은 도 1의 전자 장치(1000)를 포함할 수 있다. 또는, 뉴럴 네트워크 시스템(2600)은 도 1의 프로세서(10) 및 전자 장치(1000)를 포함할 수 있다. 도 1을 참조하여 설명된 바와 같이, 뉴럴 네트워크 시스템(2600)은 프로세서(2100)로부터 수신되는 명령(CMD)에 기초하여 동작할 수 있다.
버스(2700)는 전자 장치(2000)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 예로서, 프로세서(2100), 메모리(2200), 스토리지(2300), 통신 장치(2400), 사용자 인터페이스(2500), 및 뉴럴 네트워크 시스템(2600)은 버스(2700)를 통해 서로 데이터를 교환할 수 있다. 버스(2700)는 전자 장치(2000)에서 이용되는 다양한 유형의 통신 포맷을 지원하도록 구성될 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000: 전자 장치
2000: 전자 장치

Claims (16)

  1. 제 1 워드 라인 및 제 2 워드 라인을 통해 수신되는 제 1 입력 데이터와 제 1 가중치에 기초하여, 제 1 비트 라인을 통해 제 1 전압을 출력하거나, 제 2 비트 라인을 통해 제 2 전압을 출력하도록 구성되는 제 1 메모리 셀;
    제 3 워드 라인 및 제 4 워드 라인을 통해 수신되는 제 2 입력 데이터와 제 2 가중치에 기초하여, 상기 제 1 비트 라인을 통해 제 3 전압을 출력하거나 상기 제 2 비트 라인을 통해 제 4 전압을 출력하도록 구성되는 제 2 메모리 셀; 및
    상기 제 1 비트 라인을 통해 수신되는 전압의 레벨 및 상기 제 2 비트 라인을 통해 수신되는 전압의 레벨의 합에 대응하는 레벨을 갖는 출력 전압을 생성하도록 구성되는 증폭 회로를 포함하되,
    상기 증폭 회로는:
    노드 및 상기 제1 비트 라인 사이에 연결되고, 읽기 신호에 응답하여 동작하도록 구성된 제1 트랜스미션 게이트; 및
    상기 노드 및 상기 제2 비트 라인 사이에 연결되고, 상기 읽기 신호에 응답하여 동작하도록 구성된 제2 트랜스미션 게이트를 포함하도록 구성되고,
    상기 노드의 전압은 상기 출력 전압인 전자 장치.
  2. 제 1 항에 있어서,
    상기 제 1 워드 라인을 통해 제 1 논리 값의 데이터가 수신되고 상기 제 2 워드 라인을 통해 제 2 논리 값의 데이터가 수신됨에 따라, 상기 제 1 논리 값의 상기 제 1 입력 데이터가 상기 제 1 메모리 셀에 의해 수신되고,
    상기 제 1 워드 라인을 통해 상기 제 2 논리 값의 데이터가 수신되고 상기 제 2 워드 라인을 통해 상기 제 1 논리 값의 데이터가 수신됨에 따라, 상기 제 2 논리 값의 상기 제 1 입력 데이터가 상기 제 1 메모리 셀에 의해 수신되는 전자 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 제 1 메모리 셀과 상기 제 2 메모리 셀은 하나의 컬럼에 포함되는 전자 장치.
  5. 제 1 항에 있어서,
    상기 증폭 회로는 상기 출력 전압의 상기 레벨과 기준 레벨 사이의 비교에 기초하여, 상기 출력 전압을 증폭시키도록 더 구성되는 전자 장치.
  6. 제 5 항에 있어서,
    상기 증폭 회로는:
    상기 출력 전압의 상기 레벨이 상기 기준 레벨 보다 클 경우, 상기 출력 전압의 상기 레벨을 증가시키고,
    상기 출력 전압의 상기 레벨이 상기 기준 레벨 보다 작을 경우, 상기 출력 전압의 상기 레벨을 감소시키도록 구성되는 전자 장치.
  7. 제 1 항에 있어서,
    상기 제 1 메모리 셀은, 바이너리 뉴럴 네트워크(Binary Neural Network)의 알고리즘에 따라 수행되는 트레이닝을 통해 상기 제 1 가중치를 저장하도록 더 구성되는 전자 장치.
  8. 제 1 워드 라인을 통해 입력되는 제 1 입력 데이터, 및 제 1 가중치에 기초하여, 논리 연산에 따라 결정되는 논리 값의 제 1 결과 데이터를 제 1 비트 라인 또는 제 2 비트 라인을 통해 출력하도록 구성되는 제 1 메모리 셀, 및
    제 2 워드 라인을 통해 입력되는 제 2 입력 데이터, 및 제 2 가중치에 기초하여, 상기 논리 연산에 따라 결정되는 논리 값의 제 2 결과 데이터를 상기 제 1 비트 라인 또는 상기 제 2 비트 라인을 통해 출력하도록 구성되는 제 2 메모리 셀을 포함하는 제 1 컬럼; 및
    상기 제 1 결과 데이터와 상기 제 2 결과 데이터의 합을 출력하도록 구성되는 증폭 회로를 포함하되,
    상기 증폭 회로는:
    노드 및 상기 제1 비트 라인 사이에 연결되고, 읽기 신호에 응답하여 동작하도록 구성된 제1 트랜스미션 게이트; 및
    상기 노드 및 상기 제2 비트 라인 사이에 연결되고, 상기 읽기 신호에 응답하여 동작하도록 구성된 제2 트랜스미션 게이트를 포함하도록 구성되고,
    상기 노드의 전압은 상기 제1 결과 데이터와 상기 제2 결과 데이터의 합인 전자 장치.
  9. 제 8 항에 있어서,
    상기 제 1 메모리 셀은,
    상기 제 1 입력 데이터의 제 1 논리 값에 응답하여, 상기 제 1 가중치에 대응하는 논리 값을 갖는 상기 제 1 결과 데이터를 상기 제 1 비트 라인을 통해 출력하고,
    상기 제 1 입력 데이터의 제 2 논리 값에 응답하여, 상기 제 1 가중치에 대해 상보적인 논리 값을 갖는 상기 제 1 결과 데이터를 상기 제 2 비트 라인을 통해 출력하도록 더 구성되는 전자 장치.
  10. 제 8 항에 있어서,
    상기 증폭 회로는, 상기 제 1 결과 데이터와 상기 제 2 결과 데이터의 합에 대응하는 레벨을 갖는 출력 전압을 생성하고, 상기 출력 전압의 상기 레벨과 기준 레벨 사이의 비교에 기초하여 데이터를 출력하도록 더 구성되는 전자 장치.
  11. 제 10 항에 있어서,
    제 1 논리 값의 데이터를 저장하는 메모리 셀들과 제 2 논리 값의 데이터를 저장하는 메모리 셀들을 포함하는 제 2 컬럼을 더 포함하되,
    상기 제 1 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수와 상기 제 2 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수가 동일한 전자 장치.
  12. 제 11 항에 있어서,
    상기 제 1 워드 라인 및 상기 제 2 워드 라인을 통해 수신되는 전압들에 응답하여, 상기 제 2 컬럼으로부터 기준 전압이 출력되는 전자 장치.
  13. 제 8 항에 있어서,
    상기 제 1 컬럼은, 제 1 논리 값의 데이터를 저장하는 메모리 셀들과 제 2 논리 값의 데이터를 저장하는 메모리 셀들을 더 포함하는 전자 장치.
  14. 제 13 항에 있어서,
    상기 제 1 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수와 상기 제 2 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수는, 상기 제 1 컬럼의 메모리 셀들에 의해 생성되는 노이즈와 관련되는 전자 장치.
  15. 제 14 항에 있어서,
    상기 제 1 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수와 상기 제 2 논리 값의 상기 데이터를 저장하는 상기 메모리 셀들의 개수는, 상기 제 1 결과 데이터와 상기 제 2 결과 데이터의 상기 합에 대응하는 전압의 오프셋과 관련되는 전자 장치.
  16. 제 8 항에 있어서,
    상기 논리 연산은 XNOR 연산인 전자 장치.

KR1020190110691A 2019-09-06 2019-09-06 뉴럴 네트워크를 구현하기 위한 전자 장치 KR102410849B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190110691A KR102410849B1 (ko) 2019-09-06 2019-09-06 뉴럴 네트워크를 구현하기 위한 전자 장치
US17/011,929 US11335399B2 (en) 2019-09-06 2020-09-03 Electronic device for configuring neural network
US17/723,358 US11790985B2 (en) 2019-09-06 2022-04-18 Electronic device for configuring neural network
KR1020220070218A KR102532606B1 (ko) 2019-09-06 2022-06-09 뉴럴 네트워크를 구현하기 위한 전자 장치
US18/303,309 US20230260568A1 (en) 2019-09-06 2023-04-19 Electronic device for configuring neural network
KR1020230057225A KR20230065225A (ko) 2019-09-06 2023-05-02 뉴럴 네트워크를 구현하기 위한 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190110691A KR102410849B1 (ko) 2019-09-06 2019-09-06 뉴럴 네트워크를 구현하기 위한 전자 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220070218A Division KR102532606B1 (ko) 2019-09-06 2022-06-09 뉴럴 네트워크를 구현하기 위한 전자 장치

Publications (2)

Publication Number Publication Date
KR20210029876A KR20210029876A (ko) 2021-03-17
KR102410849B1 true KR102410849B1 (ko) 2022-06-21

Family

ID=74851312

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020190110691A KR102410849B1 (ko) 2019-09-06 2019-09-06 뉴럴 네트워크를 구현하기 위한 전자 장치
KR1020220070218A KR102532606B1 (ko) 2019-09-06 2022-06-09 뉴럴 네트워크를 구현하기 위한 전자 장치
KR1020230057225A KR20230065225A (ko) 2019-09-06 2023-05-02 뉴럴 네트워크를 구현하기 위한 전자 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020220070218A KR102532606B1 (ko) 2019-09-06 2022-06-09 뉴럴 네트워크를 구현하기 위한 전자 장치
KR1020230057225A KR20230065225A (ko) 2019-09-06 2023-05-02 뉴럴 네트워크를 구현하기 위한 전자 장치

Country Status (2)

Country Link
US (3) US11335399B2 (ko)
KR (3) KR102410849B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295430B2 (en) * 2020-05-20 2022-04-05 Bank Of America Corporation Image analysis architecture employing logical operations
KR102665462B1 (ko) * 2021-09-06 2024-05-09 포항공과대학교 산학협력단 바이너리 뉴럴 네트워크의 연산 방법 및 이를 사용하는 바이너리 뉴럴 네트워크 연산 장치
US20230238056A1 (en) * 2022-01-27 2023-07-27 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device and method of manufacturing the same
KR102437329B1 (ko) * 2022-07-06 2022-08-30 주식회사 스퀴즈비츠 행렬곱 연산 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102341262B1 (ko) 2015-08-11 2021-12-20 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
US9858985B2 (en) 2015-10-19 2018-01-02 Taiwan Semiconductor Manufacturing Co., Ltd. Dual port SRAM cell
US20180144240A1 (en) * 2016-11-21 2018-05-24 Imec Vzw Semiconductor cell configured to perform logic operations
KR102384733B1 (ko) 2017-09-26 2022-04-08 삼성전자주식회사 반도체 메모리 장치, 반도체 메모리 장치의 동작 방법 및 메모리 시스템
US11361215B2 (en) * 2017-11-29 2022-06-14 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
KR102143928B1 (ko) * 2018-02-05 2020-08-13 고려대학교 산학협력단 인공 신경망 장치 및 그 동작 방법
US10642922B2 (en) * 2018-09-28 2020-05-05 Intel Corporation Binary, ternary and bit serial compute-in-memory circuits
US11126402B2 (en) * 2019-03-21 2021-09-21 Qualcomm Incorporated Ternary computation memory systems and circuits employing binary bit cell-XNOR circuits particularly suited to deep neural network (DNN) computing

Also Published As

Publication number Publication date
US20210074349A1 (en) 2021-03-11
US20220246204A1 (en) 2022-08-04
US11335399B2 (en) 2022-05-17
KR20210029876A (ko) 2021-03-17
US11790985B2 (en) 2023-10-17
US20230260568A1 (en) 2023-08-17
KR102532606B1 (ko) 2023-05-15
KR20220083995A (ko) 2022-06-21
KR20230065225A (ko) 2023-05-11

Similar Documents

Publication Publication Date Title
KR102410849B1 (ko) 뉴럴 네트워크를 구현하기 위한 전자 장치
US10825510B2 (en) Multi-bit dot product engine
KR102408572B1 (ko) 반도체 메모리 장치
US7295459B2 (en) Static random access memory (SRAM) cell
JP4771710B2 (ja) メモリの差動電流モードを検出する方法と装置
CN109308925B (zh) 静态随机存取存储器及其写入辅助电路和写入操作方法
US11727253B2 (en) Neural network system including gate circuit for controlling memristor array circuit
US11955157B2 (en) Physically unclonable function apparatus based on ferroelectric elements and operation method thereof
US6944066B1 (en) Low voltage data path and current sense amplifier
KR102206020B1 (ko) 로직-인-메모리를 위한 3진 메모리 셀 및 이를 포함하는 메모리 장치
JP5259382B2 (ja) 半導体記憶装置
KR20170096807A (ko) 메모리를 이용한 물리적 복제 불가능 함수 보안 칩
KR102172380B1 (ko) 3진 메모리 셀 및 이를 포함하는 메모리 장치
KR102379729B1 (ko) 우선 순위에 따라 매칭 라인들을 구동하는 메모리 장치
Bian et al. In-MRAM computing elements with single-step convolution and fully connected for BNN/TNN
CN219716477U (zh) 存储器装置
JPH08167287A (ja) 半導体記憶装置
US20230333814A1 (en) Compute-in memory (cim) device and computing method thereof
US20230162785A1 (en) Non-volatile memory based compute-in-memory cell
Liu et al. A margin adjustable amplifier circuit for RRAM read access
WO2020003519A1 (ja) 半導体記憶装置およびデータ書き込み方法
JP2001210081A (ja) カラムスイッチ及びそれを用いたキャッシュメモリ
Vinitha et al. Design of a low-power average-8T SRAM cell using transmission gate
JPWO2021161808A5 (ja) 双安定回路、電子回路および記憶回路
JP2013211063A (ja) 半導体記憶装置

Legal Events

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