KR20230035719A - Calculation method of binary neural network and binary neural network using the same - Google Patents

Calculation method of binary neural network and binary neural network using the same Download PDF

Info

Publication number
KR20230035719A
KR20230035719A KR1020210118060A KR20210118060A KR20230035719A KR 20230035719 A KR20230035719 A KR 20230035719A KR 1020210118060 A KR1020210118060 A KR 1020210118060A KR 20210118060 A KR20210118060 A KR 20210118060A KR 20230035719 A KR20230035719 A KR 20230035719A
Authority
KR
South Korea
Prior art keywords
neural network
threshold value
binary neural
calculating
converted
Prior art date
Application number
KR1020210118060A
Other languages
Korean (ko)
Other versions
KR102665462B1 (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 포항공과대학교 산학협력단
Priority to KR1020210118060A priority Critical patent/KR102665462B1/en
Publication of KR20230035719A publication Critical patent/KR20230035719A/en
Application granted granted Critical
Publication of KR102665462B1 publication Critical patent/KR102665462B1/en

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/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

The embodiment of the present invention relates to a method for calculating a binary neural network. The method includes the steps of: converting provided input values into a linear transformation function; calculating a weighted sum of the converted input values; and calculating an output value by comparing a threshold value converted by the linear conversion function with the weighted sum. Therefore, the present invention has high energy efficiency and computing characteristics.

Description

바이너리 뉴럴 네트워크의 연산 방법 및 이를 사용하는 바이너리 뉴럴 네트워크 연산 장치{CALCULATION METHOD OF BINARY NEURAL NETWORK AND BINARY NEURAL NETWORK USING THE SAME}Binary neural network calculation method and binary neural network calculation device using the same

본 기술은 바이너리 뉴럴 네트워크의 연산 방법 및 이를 사용하는 바이너리 뉴럴 네트워크 연산 장치와 관련된다.The present technology relates to a binary neural network calculation method and a binary neural network calculation device using the same.

기존의 폰 노이만 구조를 기반으로 하는 칩들의 구조적 한계를 극복하기 위하여, 사람의 뇌를 이루는 기본 단위인 뉴런과 이러한 뉴런 사이의 연결을 이어주는 시냅스 등으로 이루어진 뉴럴 네트워크를 바탕으로 하는 뉴럴 네트워크 하드웨어 또는 뉴로모픽 하드웨어가 개발되고 있다. 뉴럴 네트워크는 기존의 머신 러닝 알고리즘들이 갖고 있던 한계를 뛰어넘어 사람에 근접한 수준의 이미지, 영상, 패턴 학습 및 인지 능력을 보여주고 있으며, 이미 수많은 분야에 사용되고 있다. 수많은 회사와 연구자들은 이러한 뉴럴 네트워크의 연산 작업을 보다 저전력으로 빠르게 수행하기 위하여 전용 ASIC 칩을 개발해 오고 있다. In order to overcome the structural limitations of chips based on the existing von Neumann structure, neural network hardware or neural network hardware based on a neural network consisting of neurons, which are the basic units of the human brain, and synapses connecting these neurons, Lomorphic hardware is being developed. Neural networks exceed the limits of existing machine learning algorithms and show image, video, and pattern learning and recognition capabilities close to those of humans, and are already being used in numerous fields. Numerous companies and researchers have been developing dedicated ASIC chips to perform these neural network computations quickly and with less power.

뉴럴 네트워크는 사람의 뇌와 같이 뉴런들이 이어져 네트워크를 형성하고, 학습 및 추론을 수행한다. 뉴럴 네트워크는 뉴런과 뉴런들이 연결되는 시냅스를 포함하며, 뉴런과 뉴런 사이의 연결도가 강하거나, 약할 수 있으며, 그 정도를 가중치(weight)라고 한다. Like the human brain, a neural network connects neurons to form a network and performs learning and reasoning. A neural network includes neurons and synapses to which neurons are connected, and the degree of connection between neurons may be strong or weak, and the degree of connection between neurons is called a weight.

뉴럴 네트워크를 학습한다고 하는 것은 네트워크를 형성하고, 학습시키고자 하는 데이터를 입력하였을 때, 목적하는 결과가 출력될 때까지 가중치의 값을 제어하는 과정이다.Learning a neural network is a process of forming a network, inputting data to be trained, and controlling weight values until a desired result is output.

뉴럴 네트워크를 학습시키는 과정은 n 개의 뉴런과 m 개의 뉴런 사이의 웨이트 값을 n*m의 가중치 행렬(weight matrix)로 표현하고, 행렬의 원소값을 변경하는 과정으로 설명될 수 있다. 또한, 뉴럴 네트워크를 이용한 추론을 수행하는 과정은 뉴런이 제공하는 벡터와 가중치 행렬의 곱 연산을 수행하는 과정으로 설명하는 것이 일반적이다. A process of training a neural network can be described as a process of expressing weight values between n neurons and m neurons as an n*m weight matrix and changing element values of the matrix. In addition, it is common to describe a process of performing inference using a neural network as a process of performing a multiplication operation between a vector provided by a neuron and a weight matrix.

바이너리 뉴럴 네트워크(BNN, binary neural network)는 뉴럴 네트워크의 종류로, 가중치 및/또는 입력이 정해진 어느 두 값으로 이루어진 네트워크를 의미한다. 종래의 바이너리 뉴럴 네트워크의 가중치 및/또는 입력 활성화(input activation) 값들은 +1, -1의 두 부호를 가진(signed) 값으로 이루어지는 것이 일반적으로, 이를 통하여 가중치 값, 연산 결과들을 저장하는 저장 공간을 효율적으로 활용할 수 있고 MAC 연산에서의 곱셈 연산을 간단한 XNOR(exclusive NOR) 연산으로 대체할 수 있다는 점에서 장점이 있다.A binary neural network (BNN) is a type of neural network, and means a network composed of any two values for which weights and/or inputs are determined. In general, the weights and/or input activation values of a conventional binary neural network are composed of signed values of +1 and -1, through which weight values and operation results are stored. It is advantageous in that it can efficiently utilize and replace the multiplication operation in the MAC operation with a simple exclusive NOR (XNOR) operation.

부호를 가진(signed) +1, -1의 두 값으로 가중치 및/또는 입력 값들을 표시하는 종래의 바이너리 뉴럴 네트워크 알고리즘은 다른 값들을 사용하는 알고리즘에 비하여 우수한 인식률, 높은 학습률을 가진다. 그러나, 기존의 바이너리 뉴럴 네트워크 알고리즘을 연산하는 하드웨어는 에너지 효율과 연산 특성이 높지 않다. Conventional binary neural network algorithms that represent weights and/or input values with two signed values of +1 and -1 have superior recognition rates and higher learning rates than algorithms using other values. However, hardware that computes existing binary neural network algorithms does not have high energy efficiency and computational characteristics.

본 기술로 해결하고자 하는 과제 중 하나는 종래의 바이너리 뉴럴 네트워크 알고리즘의 인식률, 학습률을 유지한 채로 종래의 바이너리 뉴럴 네트워크 알고리즘을 연산하는 하드웨어에 비하여 높은 에너지 효율 및 연산 특성를 가지는 뉴럴 네트워크 연산 방법과 하드웨어를 제공하는 것이다. One of the problems to be solved by the present technology is to develop a neural network calculation method and hardware having higher energy efficiency and calculation characteristics than hardware that calculates the conventional binary neural network algorithm while maintaining the recognition rate and learning rate of the conventional binary neural network algorithm. is to provide

본 실시예에 의한 바이너리 뉴럴 네트워크(binary neural network)의 연산 방법은: 제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계와, 변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계 및 선형 변환 함수로 변환된 문턱(threshold) 값과 가중합을 비교하여 출력값을 연산하는 단계를 포함한다.The operation method of the binary neural network according to the present embodiment includes: converting provided input values into a linear transformation function, and calculating a weighted sum of the transformed input values and calculating an output value by comparing a weighted sum with a threshold value converted by the step and linear conversion function.

본 실시예에 의한 바이너리 뉴럴 네트워크의 연산 장치는: 적어도 하나 이상의 프로세서; 및 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 포함하며, 프로그램들은 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서들에서 바이너리 뉴럴 네트워크의 연산 방법이 수행되며, 연산 방법은: 바이너리 뉴럴 네트워크(binary neural network)의 연산 방법으로, 방법은: 제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계, 변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계 및 선형 변환 함수로 변환된 문턱(threshold) 값과 가중합을 비교하여 출력값을 연산하는 단계를 포함한다.The binary neural network calculation device according to the present embodiment includes: at least one processor; and a memory for storing one or more programs executed by the processor, and when the programs are executed by the one or more processors, a binary neural network calculation method is performed in the one or more processors, and the calculation method includes: a binary neural network ( binary neural network), the method comprising: transforming provided input values into a linear transformation function, calculating a weighted sum of the transformed input values, and transforming into a linear transformation function and calculating an output value by comparing a weighted sum with a threshold value.

본 실시예에 의한 바이너리 뉴럴 네트워크의 연산 방법으로, 연산 방법은: 비트라인과 반전 비트라인을 프리차지하는 단계와, 변환된 입력 성분에 상응하는 전압을 워드라인으로 제공하여 단위 셀에 포함되어 비트 라인과 연결된 제1 패스 스위치 및 반전 비트 라인과 연결된 제2 패스 스위치를 제어하는 단계와, 비트라인의 전압 변화 및 반전 비트라인의 전압의 변화를 검출하는 단계 및 검출된 전압의 변화들로부터 변환 가중합 값을 연산하는 단계를 포함한다.In the binary neural network calculation method according to the present embodiment, the calculation method includes: precharging a bit line and an inverted bit line, providing a voltage corresponding to the converted input component to a word line, and being included in a unit cell to be included in the bit line Controlling the first pass switch connected to and the second pass switch connected to the inverted bit line, detecting the voltage change of the bit line and the voltage change of the inverted bit line, and the conversion weighted sum from the detected voltage changes It involves calculating the value.

본 실시예 들에 의하면, 기존의 바이너리 뉴럴 네트워크 알고리즘의 높은 인식률, 학습율을 유지하면서 연산 속도와 에너지 효율이 개선된 하드웨어를 이용하여 바이너리 뉴럴 네트워크 연산이 가능하다는 장점이 제공된다. According to the present embodiments, while maintaining the high recognition rate and learning rate of the existing binary neural network algorithm, it is possible to perform binary neural network calculation using hardware with improved calculation speed and energy efficiency.

도 1은 본 실시예에 의한 바이너리 뉴럴 네트워크(binary neural network)의 연산 방법의 개요를 도시한 순서도이다.
도 2는 어느 한 실시예에 의한 바이너리 뉴럴 네트워크 연산장치의 개요를 나타낸 블록도이다.
도 3(a)는 종래 기술에 따라 가중합을 연산하는 과정을 예시한 도면이고, 도 3(b)는 본 실시예에 따라 가중합을 연산하는 과정을 예시한 도면이다.
도 4는 본 실시예에 따라 도 3(b)에서 연산된 가중합으로부터 바이너리 출력(Zb)을 연산하는 과정을 예시한 도면이다.
도 5는 다른 실시예의 바이너리 뉴럴 네트워크의 연산 방법의 개요를 설명한 순서도이다.
도 6은 바이너리 뉴럴 네트워크의 연산 장치의 개요를 도시한 도면이다.
도 7은 본 실시예에 의한 단위 셀의 개요를 도시한 도면이다.
도 8 및 도 9는 본 실시예에 의한 바이너리 뉴럴 네트워크의 연산과정을 설명하기 위한 도면이다.
1 is a flowchart illustrating an outline of a method for calculating a binary neural network according to an embodiment of the present invention.
2 is a block diagram showing the outline of a binary neural network calculator according to an embodiment.
3(a) is a diagram illustrating a process of calculating a weighted sum according to the prior art, and FIG. 3(b) is a diagram illustrating a process of calculating a weighted sum according to the present embodiment.
4 is a diagram illustrating a process of calculating a binary output Zb from the weighted sum calculated in FIG. 3(b) according to the present embodiment.
5 is a flowchart illustrating an outline of a binary neural network calculation method according to another embodiment.
6 is a diagram showing an outline of a binary neural network calculation device.
7 is a diagram showing the outline of a unit cell according to this embodiment.
8 and 9 are diagrams for explaining the calculation process of the binary neural network according to the present embodiment.

이하에서는 첨부된 도면들을 참조하여 본 실시예를 설명한다. 도 1은 본 실시예에 의한 바이너리 뉴럴 네트워크(binary neural network)의 연산 방법의 개요를 도시한 순서도이다. 도 1을 참조하면, 본 실시예에 의한 바이너리 뉴럴 네트워크 연산방법은 제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계(S100)와, 변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계(S200) 및 선형 변환 함수로 변환된 문턱(threshold) 값과 가중합을 비교하여 출력값을 연산하는 단계(S300)를 포함한다. Hereinafter, this embodiment will be described with reference to the accompanying drawings. 1 is a flowchart illustrating an outline of a method for calculating a binary neural network according to an embodiment of the present invention. Referring to FIG. 1, the binary neural network calculation method according to the present embodiment includes a step of converting provided input values into a linear transformation function (S100), and a weighted sum of the transformed input values. Computing (S200) and calculating an output value by comparing a weighted sum with a threshold value converted by a linear conversion function (S300).

도 2는 어느 한 실시예에 의한 바이너리 뉴럴 네트워크 연산장치2 is a binary neural network calculator according to an embodiment

의 개요를 나타낸 블록도이다. 도 2로 예시된 것과 같이 바이너리 뉴럴 네트워크 연산장치(1)는 연산의 종류에 국한되지 않고 연산을 수행할 수 있는 비한정적 마이크로프로세서를 이용하여 실시될 수 있다. 후술할 다른 실시예에 의하면 바이너리 뉴럴 네트워크 연산장치는 전용 연산 장치로 실시될 수 있다. It is a block diagram showing the outline of. As illustrated in FIG. 2 , the binary neural network calculator 1 is not limited to the type of calculation and can be implemented using an unrestricted microprocessor capable of performing calculations. According to another embodiment to be described later, the binary neural network calculator may be implemented as a dedicated calculator.

도 2는 본 실시예에 의한 바이너리 뉴럴 네트워크 연산장치(1)의 개요를 도시한 블록도이다. 도 2를 참조하면, 본 실시예에 따른 바이너리 뉴럴 네트워크 연산장치(1)는 입력부(21), 출력부(22), 프로세서(25), 메모리(24) 및 데이터베이스(23)를 포함한다. 도 2의 바이너리 뉴럴 네트워크 연산장치(1)는 일 실시예에 따른 것이다. 도 2에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 바이너리 뉴럴 네트워크 연산장치(1)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다. 한편, 바이너리 뉴럴 네트워크 연산장치(1)는 바이너리 뉴럴 네트워크의 연산을 수행하는 컴퓨팅 장치로 구현될 수 있으며, 바이너리 뉴럴 네트워크 연산장치(1)에 포함된 각 구성 요소들은 각각 별도의 소프트웨어 장치로 구현되거나, 소프트웨어가 결합된 별도의 하드웨어 장치로 구현될 수 있다.2 is a block diagram showing the outline of the binary neural network calculator 1 according to the present embodiment. Referring to FIG. 2 , the binary neural network calculator 1 according to the present embodiment includes an input unit 21, an output unit 22, a processor 25, a memory 24, and a database 23. The binary neural network calculator 1 of FIG. 2 is according to an embodiment. All blocks shown in FIG. 2 are not essential components, and some blocks included in the binary neural network calculator 1 may be added, changed, or deleted in other embodiments. Meanwhile, the binary neural network calculator 1 may be implemented as a computing device that performs binary neural network calculations, and each component included in the binary neural network calculator 1 may be implemented as a separate software device or , can be implemented as a separate hardware device in which software is combined.

바이너리 뉴럴 네트워크 연산장치(1)는 제공된 입력 값들을 선형 변환 함수를 이용하여 변환하는 단계(S100, 도 1 참조)와, 변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계(S200, 도 1 참조) 및 선형 변환 함수로 변환된 문턱(threshold) 값과 가중합을 비교하여 출력값을 연산하는 단계(S300, 도 1 참조)를 수행한다. The binary neural network calculator 1 converts the provided input values using a linear transformation function (S100, see FIG. 1), and calculates a weighted sum of the converted input values (S200, FIG. 1) and calculating the output value by comparing the weighted sum with the threshold value converted by the linear conversion function (S300, see FIG. 1).

입력부(21)는 입력 값들을 제공받는 수단을 의미한다. 입력부(21)는 외부 장치, 사용자 또는 바이너리 뉴럴 네트워크의 다른 레이어로부터 입력 값을 제공받을 수 있다. 또한, 입력부(21)는 프로세서(25)와 연동하여 다양한 형태의 신호 또는 데이터를 입력하거나, 외부 장치와 연동하여 직접 데이터를 획득하여 프로세서(25)로 전달할 수도 있다. 입력부(21)는 로그 정보(log), 다양한 조건 정보 또는 제어신호 등을 입력하거나 입력 받기 위한 장치 또는 서버일 수 있으나 반드시 이에 한정되는 것은 아니다. The input unit 21 means means for receiving input values. The input unit 21 may receive an input value from an external device, a user, or another layer of a binary neural network. In addition, the input unit 21 may input various types of signals or data in conjunction with the processor 25, or directly acquire data in association with an external device and transmit it to the processor 25. The input unit 21 may be a device or server for inputting or receiving log information (log), various condition information or control signals, etc., but is not necessarily limited thereto.

출력부(22)는 프로세서(25)와 연동하여 바이너리 뉴럴 네트워크 연산결과, 성공 또는 실패 로그정보 등을 표시할 수 있다. 출력부(22)는 소정의 정보를 출력하기 위하여 바이너리 뉴럴 네트워크 연산장치(1)에 구비된 디스플레이(미도시) 등을 통해 다양한 정보를 표시하는 것이 바람직하나 반드시 이에 한정되는 것은 아니다. The output unit 22 may display binary neural network operation results, success or failure log information, etc. in conjunction with the processor 25 . In order to output predetermined information, the output unit 22 preferably displays various information through a display (not shown) provided in the binary neural network calculator 1, but is not necessarily limited thereto.

프로세서(25)는 메모리(24)에 포함된 적어도 하나의 명령어 또는 프로그램을 수행한다. 본 실시예에 따른 프로세서(25)는 입력부(21) 또는 데이터베이스(23)로부터 획득한 데이터를 기반으로 각 단계를 수행하기 위한 데이터를 연산한다. 일 예로, 프로세서(25)는 제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계(S100, 도 1 참조), 변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계(S200, 도 1 참조) 및 선형 변환 함수로 변환된 문턱(threshold) 값과 가중합을 비교하여 출력값을 연산하는 단계(S300, 도 1 참조)를 수행할 수 있다. Processor 25 executes at least one instruction or program included in memory 24 . The processor 25 according to the present embodiment calculates data for performing each step based on data obtained from the input unit 21 or the database 23 . For example, the processor 25 converts the provided input values into a linear transformation function (S100, see FIG. 1), and calculates a weighted sum of the converted input values (S200, 1) and calculating an output value by comparing a weighted sum with a threshold value converted by a linear conversion function (S300, see FIG. 1).

프로세서(25)는 바이너리 뉴럴 네트워크의 학습 과정을 수행하여 가중치의 합을 연산하거나, 문턱값을 연산할 수 있다. 또한, 프로세서(25)는 학습이 완료된 바이너리 뉴럴 네트워크를 이용하여 입력과 가중치와의 곱셈 누적 연산(MAC, multiply and accumulate)하여 추론 과정을 수행할 수 있다. The processor 25 may calculate a sum of weights or a threshold value by performing a learning process of a binary neural network. In addition, the processor 25 may perform an inference process by performing a multiply and accumulate (MAC) operation between an input and a weight using a binary neural network for which learning has been completed.

메모리(24)는 프로세서(25)에 의해 실행 가능한 적어도 하나의 명령어 또는 프로그램을 저장한다. 메모리(24)는 처리를 수행하기 위한 명령어 또는 프로그램을 저장할 수 있다. 메모리(24)는 각 단계에서 수행된 결과, 중간값 등의 연관된 값들을 저장할 수 있다. 일 예로, 메모리(24)는 변환된 입력값들, 변환된 입력 값들로 연산된 변환 가중합, 변환된 문턱값 등의 각 단계에서 수행된 결과를 저장할 수 있다. 또한, 메모리(24)는 바이너리 뉴럴 네트워크의 학습이 완료되어 생성된 가중치, 가중치의 합, 문턱값을 더 저장할 수 있다. Memory 24 stores at least one instruction or program executable by processor 25 . Memory 24 may store instructions or programs for performing processing. The memory 24 may store associated values such as results, intermediate values, etc. performed at each step. For example, the memory 24 may store results performed in each step, such as transformed input values, a transformed weighted sum calculated with the transformed input values, and a transformed threshold value. In addition, the memory 24 may further store a weight, a sum of the weights, and a threshold value generated when learning of the binary neural network is completed.

데이터베이스(23)는 데이터베이스 관리 프로그램(DBMS)을 이용하여 컴퓨터 시스템의 저장 공간(하드디스크 또는 메모리)에 구현된 일반적인 데이터구조를 의미하는 것으로, 데이터의 검색(추출), 삭제, 편집, 추가 등을 자유롭게 행할 수 있는 데이터 저장형태를 뜻한다. 데이터베이스(23)의 일 예로는 오라클(Oracle), 인포믹스(Infomix), 사이베이스(Sybase), DB2와 같은 관계형 데이타베이스 관리 시스템(RDBMS)이나, 겜스톤(Gemston), 오리온(Orion), O2 등과 같은 객체 지향 데이타베이스 관리 시스템(OODBMS) 및 엑셀론(Excelon), 타미노(Tamino), 세카이주(Sekaiju) 등이 있을 수 있으며, 이들은 XML 전용 데이터베이스(XML Native Database)를 이용하여 본 발명의 일 실시예의 목적에 맞게 구현될 수 있고, 자신의 기능을 달성하기 위하여 적당한 필드(Field) 또는 엘리먼트들을 가지고 있다.The database 23 refers to a general data structure implemented in the storage space (hard disk or memory) of a computer system using a database management program (DBMS), and searches (extracts), deletes, edits, adds, etc. of data. It is a form of data storage that can be used freely. An example of the database 23 is a relational database management system (RDBMS) such as Oracle, Informix, Sybase, DB2, Gemston, Orion, O2, etc. There may be the same object-oriented database management system (OODBMS) and Excelon, Tamino, Sekaiju, etc., which use XML Native Database It can be implemented according to the purpose and has appropriate fields or elements to achieve its function.

본 실시예에 따른 데이터베이스(23)은 로그정보, 변환된 입력값들, 변환된 입력 값들의 가중합, 변환된 문턱값 등의 각 단계에서 수행된 결과를 저장할 수 있다. 또한, 데이터베이스(23)는 바이너리 뉴럴 네트워크의 학습이 완료되어 생성된 가중치, 가중치의 합, 문턱값을 등을 저장하고, 저장된 데이터를 제공할 수 있다. 한편, 데이터베이스(24)는 바이너리 뉴럴 네트워크 연산장치(1) 내에 구현되는 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 별도의 데이터 저장장치로 구현될 수도 있다.The database 23 according to this embodiment may store results performed in each step, such as log information, converted input values, a weighted sum of converted input values, and a converted threshold value. In addition, the database 23 may store weights, a sum of weights, a threshold value, and the like generated when learning of the binary neural network is completed, and provide the stored data. Meanwhile, although the database 24 is described as being implemented in the binary neural network calculator 1, it is not necessarily limited thereto and may be implemented as a separate data storage device.

도 1 및 도 2를 참조하면, 제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환(S100)한다. 일 실시예로, 입력 값들은 -1, +1과 같이 부호를 가진(signed) 값을 포함할 수 있으며, 선형 변환 함수는 부호를 가진(signed) 입력값들을 0, 1과 같이 부호를 가지지 않은(unsigned) 값으로 변환할 수 있다. Referring to FIGS. 1 and 2 , provided input values are converted into a linear transformation function (S100). In one embodiment, the input values may include signed values such as -1 and +1, and the linear conversion function converts signed input values to unsigned values such as 0 and 1. (unsigned) value.

부호를 가진(signed) 값으로 -1과 +1을 예시하였으나, 이는 예시일 따름이며, 다른 실시예에서는 -2와 +4의 부호를 가진(signed) 값이 입력값으로 사용될 수 있다. 나아가, 부호를 가지지 않은(unsigned) 값으로 0, 1을 예시하였으나, 이는 예시일 따름이며 2, 4 등의 부호를 가지지 않은(unsigned) 값을 사용할 수 있다. 다만, 이하에서는 -1과 +1을 부호를 가진(signed) 값으로 예시하여 설명하고, 0, 1을 부호를 가지지 않은(unsigned) 값으로 예시하여 설명한다. 이것은 용이하고, 간결한 설명을 위한 것이며, 본 발명의 범위를 제한하고자 하는 것이 아니다. Although -1 and +1 are illustrated as signed values, this is only an example, and in other embodiments, signed values of -2 and +4 may be used as input values. Furthermore, although 0 and 1 are illustrated as unsigned values, this is only an example and unsigned values such as 2 and 4 may be used. However, in the following description, -1 and +1 are exemplified as signed values, and 0 and 1 are exemplified and described as unsigned values. This is for convenience and concise explanation and is not intended to limit the scope of the present invention.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

(f: 선형 변환 함수, x: 입력 성분, xt: 변환된 입력 성분, p, q: 실수인 상수)(f: linear transformation function, x: input components, x t : transformed input components, p, q: constants that are real numbers)

수학식 1은 선형 변환 함수를 예시한 식이다. 선형 변환 함수는 수학식 1의 ①식으로 예시된 것과 같이 일차식(first order polynomial)으로 표시될 수 있다. 또한, 선형 변환 함수는 정의역(domain)과 치역(range) 사이에서 1:1로 사상(mapping)이 이루어지므로 선형 변환 함수에 의하여 변환된 값들은 변환되지 않은 값들로 역변환 될 수 있다. Equation 1 is an equation illustrating a linear conversion function. The linear transformation function can be expressed as a first order polynomial, as exemplified by equation 1 in Equation 1. In addition, since the linear transformation function maps 1:1 between the domain and the range, the values transformed by the linear transformation function can be inversely transformed into untransformed values.

일 예로, 입력 성분들이 -1, +1의 부호를 가진(signed) 값일 때, 수학식 1의 ②식과 같이 p = q = 0.5인 선형 변환 함수를 사용하면 -1, +1의 부호를 가진(signed) 입력 성분을 부호를 가지지 않은(unsigned) 0, 1 값으로 변환할 수 있다. For example, when the input components are signed values of -1 and +1, using a linear conversion function of p = q = 0.5 as shown in ② of Equation 1 has a sign of -1 and +1 ( You can convert signed input components to unsigned 0, 1 values.

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

일 실시예로, 부호를 가진(signed) 값인 -A와 +B를 M, N의 두 부호를 가지지 않은 값으로 변환하는 선형 변환 함수를 얻고자 하는 경우에는 위의 수학식 2에서 p 와 q 를 풀어서 목적하는 선형 변환 함수를 얻을 수 있다. As an embodiment, in the case of obtaining a linear conversion function for converting signed values -A and +B to two unsigned values of M and N, p and q in Equation 2 above Solve to obtain the desired linear transformation function.

상기한 실시예들은 선형 변환 함수를 이용하여 부호를 가진(signed) 값을 부호를 가지지 않는(unsigned) 값으로 변환하는 예를 설명하고 있으나, 선형 변환 함수를 이용하여 부호를 가지지 않는(unsigned) 값을 부호를 가진(signed) 값으로 변환하는 것도 당연히 가능하다.The above embodiments describe an example of converting a signed value to an unsigned value using a linear conversion function, but an unsigned value using a linear conversion function. It is of course also possible to convert to a signed value.

변환된 입력 성분(xt)들과 가중치(w)와의 가중합(weighted sum)을 연산(S200)한다. 도 3(a)는 종래 기술에 따라 가중합을 연산하는 과정을 예시한 도면이고, 도 3(b)는 본 실시예에 따라 가중합을 연산하는 과정을 예시한 도면이다. 도 3(a)를 참조하면, 입력 성분(x)을 포함하는 입력 맵(X)에서 굵은 파선으로 도시된 연산 영역의 제1행, 제1열 성분인 -1과 가중치 매트릭스(W)의 제1행, 제1열 성분인 +1과 곱셈을 수행하여 -1을 얻는다. 연산 영역의 제1행, 제2열 성분인 +1과 가중치 매트릭스(W)의 제1행, 제2열 성분인 +1과 곱셈을 수행하여 +1을 얻는다. A weighted sum of the transformed input components (x t ) and the weight (w) is calculated (S200). 3(a) is a diagram illustrating a process of calculating a weighted sum according to the prior art, and FIG. 3(b) is a diagram illustrating a process of calculating a weighted sum according to the present embodiment. Referring to FIG. 3(a), in the input map (X) including the input component (x), the first row and the first column component of the calculation area shown as a thick broken line is -1 and the first row of the weight matrix (W). Multiply with +1, the first column component of row 1, to get -1. +1 is obtained by multiplying +1, which is a component of the first row and second column of the calculation area, and +1, which is a component of the first row and second column of the weight matrix (W).

이와 같이 입력 맵(X)의 제3행, 제3열 성분과 가중치 매트릭스(W)의 제3행, 제3열 성분까지 연산을 수행한 결과는 -1, +1, -1, -1, -1, -1, +1, +1, -1이고, 이들을 누적하면 출력 매트릭스(Y)의 제1행 제1열 성분인 -3을 얻을 수 있다. 굵은 파선으로 도시된 연산 영역을 스트라이딩(striding)하면서 상술한 곱셈 및 누적(MAC, multiply and accumulate) 연산을 수행한 결과는 도 3(a)로 예시된 가중합 매트릭스(weighted sum matrix, Y)와 같다. In this way, the result of performing the operation up to the third row and third column components of the input map (X) and the third row and third column components of the weight matrix (W) is -1, +1, -1, -1, -1, -1, +1, +1, -1, and by accumulating them, -3, which is a component of the first row and first column of the output matrix Y, can be obtained. The result of performing the above-described multiply and accumulate (MAC) operation while striding the operation area shown by the thick dashed line is a weighted sum matrix (Y) illustrated in FIG. 3 (a) Same as

본 실시예에 따라 변환 가중합을 연산하는 과정을 예시한 도 3(b)를 참조한다. 도 3(b)로 예시된 본 실시예에서 부호를 가진(signed) 값인 -1은 선형 변환 함수에 의하여 부호를 가지지 않은(unsigned) 값인 0으로 변환되고, 부호를 가진(signed) 값인 +1은 부호를 가지지 않은(unsigned) 값인 1로 변환된다. 이와 같이 변환된 입력 성분(xt)을 포함하는 입력 맵(Xt)은 도 3(b)로 예시된 것과 같다. Referring to FIG. 3(b) illustrating a process of calculating a transform weighted sum according to the present embodiment. In this embodiment illustrated in FIG. 3(b), the signed value -1 is converted to the unsigned value 0 by the linear conversion function, and the signed value +1 is It is converted to 1, which is an unsigned value. An input map (X t ) including the converted input component (x t ) in this way is the same as illustrated in FIG. 3(b).

굵은 파선으로 예시된 변환된 입력 맵(Xt)의 연산 영역과 가중치 매트릭스 (W)의 제1행, 제1열 성분에서 제3행, 제3열 성분까지 곱한 결과는 0, +1, -1, -1, 0, 0, 1, 0, -1 이며, 이들을 누적하면 변환 가중합 매트릭스(Yt)의 제1행 제1열로 예시된 변환 가중합 성분(yt)인 -1을 얻을 수 있다. 연산 영역을 스트라이딩하면서 MAC 연산을 수행하여 변환 가중합 매트릭스(Yt)를 형성하면 도 3(b)로 예시된 것과 같다. The result of multiplying the operation domain of the transformed input map (X t ) illustrated by the thick dashed line and the first row and column components of the weight matrix (W) by the third row and third column components is 0, +1, - 1, -1, 0, 0, 1, 0, -1, and when these are accumulated, -1, which is the transform weighted sum component (y t ) exemplified by the first row and first column of the transform weight sum matrix (Y t ), is obtained. can When a transform weighting sum matrix (Y t ) is formed by performing a MAC operation while striding the operation area, it is the same as illustrated in FIG. 3(b).

선형 변환 함수로 변환된 문턱(threshold) 값과 변환된 가중합 성분을 비교하여 출력값을 연산한다(S300). 변환 가중합 매트릭스(Yt)에 포함된 변환 가중합 성분(yt)은 선형 변환 함수로 변환된 입력 성분(xt)과 가중치(w)의 MAC 연산 결과이므로 아래의 수학식 3과 같이 표시될 수 있다. An output value is calculated by comparing the threshold value converted by the linear conversion function with the converted weighted sum component (S300). The transformation weighted sum component (y t ) included in the transformation weighted sum matrix (Y t ) is the MAC operation result of the input component (x t ) and the weight (w) transformed by the linear transformation function, so it is expressed as in Equation 3 below It can be.

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

(yt: 변환 가중합, y: 가중합, w: 가중치, xt: 변환된 입력, x: 입력)(y t : transform weighted sum, y: weighted sum, w: weight, x t : transformed input, x: input)

수학식 3으로 나타난 바와 같이, 변환 가중합 성분(yt)은 변환되지 않은 입력 성분(x)과 가중치(w)와의 MAC 연산 결과인 가중합(y)과 변환 함수에서의 x의 계수인 p(수학식 2의 ①식 참조)와의 곱과, 가중치의 합(Σw)과 변환 함수에서의 상수인 q(수학식 2의 ①식 참조)와의 곱셈 연산 결과의 합으로 나타낼 수 있다. 일 예로, 선형 변환 함수가 수학식 2의 ②식과 같다면 p와 q는 모두 0.5일 수 있다. As shown in Equation 3, the transform weighted sum component (y t ) is the weighted sum (y), which is the result of the MAC operation of the untransformed input component (x) and the weight (w), and p, which is the coefficient of x in the transform function It can be expressed as the sum of the product of the product (see equation ① in Equation 2) and the multiplication result of the sum of the weights (Σw) and the constant q in the conversion function (see equation ① in Equation 2). For example, if the linear conversion function is equal to the expression ② in Equation 2, both p and q may be 0.5.

선형 변환 함수를 이용하여 입력을 변환하는 경우에, 학습 과정이 완료되면 가중치의 합은 이미 연산되어 메모리(24) 및/또는 데이터베이스(23)에 저장되거나 연산 장치(1)에 저장된다. 또한, 변환되지 않은 입력(x)과 가중치(w)와의 MAC 연산 과정은 입력을 변환하지 않는 종래의 방법에서도 수행되는 과정이므로, 입력 변환을 더 수행한다고 하더라도 연산 자원(computing resource)을 더 소모하거나, 연산 시간이 추가적으로 소모되지 않는다는 것을 알 수 있다. In the case of transforming an input using a linear transformation function, the sum of the weights is already calculated and stored in the memory 24 and/or database 23 or stored in the computing device 1 when the learning process is completed. In addition, since the MAC operation process between the untransformed input (x) and the weight (w) is performed even in a conventional method that does not transform the input, even if the input transformation is further performed, more computing resources are consumed or , it can be seen that the computation time is not additionally consumed.

연산된 가중합(yt)과 변환된 문턱값(tht)을 비교하여 출력을 형성한다. 도 4는 본 실시예에 따라 도 3(b)에서 연산된 가중합으로부터 바이너리 출력(Zb)을 연산하는 과정을 예시한 도면이다. 본 실시예에서, 변환 가중합 성분(yt)은 변환된 문턱값(tht)과 비교되어 출력값이 형성된다. 변환된 입력으로 연산된 변환 가중합 성분(yt)은 변환되지 않은 입력으로 연산된 가중합 성분(y)과 상술한 수학식 3의 관계가 있다. 수학식 3에 의하면 변환 가중합 성분(yt)과 변환된 문턱값(tht)을 비교하여 출력값을 연산하는 과정은 아래의 수학식 4와 같이 표시될 수 있다. An output is formed by comparing the calculated weighted sum (y t ) with the transformed threshold value (th t ). 4 is a diagram illustrating a process of calculating a binary output Zb from the weighted sum calculated in FIG. 3(b) according to the present embodiment. In this embodiment, the transform weighted sum component (y t ) is compared with the transformed threshold value (th t ) to form an output value. The transformed weighted sum component (y t ) calculated with the transformed input has a relationship with the weighted sum component (y) calculated with the untransformed input as shown in Equation 3 above. According to Equation 3, a process of calculating an output value by comparing a transform weighted sum component (y t ) and a transformed threshold value (th t ) may be expressed as Equation 4 below.

[수학식 4][Equation 4]

Figure pat00004
Figure pat00004

(Zb: 바이너리 출력, yt: 변환 가중합 성분, th: 문턱값, w: 가중치, p: 선형 변환 함수의 계수, q: 선형 변환 함수의 상수, y: 가중합 성분, tht: 변환된 문턱값)(Z b : binary output, y t : transformation weighted sum component, th: threshold value, w: weight, p: coefficient of linear transformation function, q: constant of linear transformation function, y: weighted sum component, th t : transformation threshold)

위의 수학식 4는 p가 양수인 실시예의 경우이다. p가 음수인 다른 실시예에서는 부등호의 방향이 역전된다. Equation 4 above is for an embodiment in which p is a positive number. In other embodiments where p is negative, the direction of the inequality sign is reversed.

도 3과 도 4를 참조하면, 바이너리 뉴럴 네트워크의 학습이 완료되면 가중치(W)의 합과 문턱값(th)을 얻을 수 있으며, 이 때 획득된 문턱값(th)은 -1.4이고, 가중치(w)의 합은 도 3(b)로 예시된 것과 같이 1인 경우를 가정한다. 3 and 4, when the learning of the binary neural network is completed, the sum of the weights (W) and the threshold value (th) can be obtained. At this time, the obtained threshold value (th) is -1.4 and the weight ( It is assumed that the sum of w) is 1 as illustrated in FIG. 3(b).

변환된 문턱값(tht)은 상기한 수학식 4와 같이 문턱값(th)과 선형 변환 함수의 x의 계수인 p의 곱과 가중치 합과 선형 변환 함수의 상수항인 q의 곱의 합으로 연산된다. 바이너리 출력이 부호를 가진(signed) 값들인 -1과 +1을 출력하는 경우를 가정하면, 수학식 1의 ②식과 같이 선형 변환 함수에서 X의 계수인 p는 0.5이고, 상수항인 q는 0.5이다. The transformed threshold value (th t ) is calculated as the sum of the product of the threshold value (th) and p, which is the coefficient of x of the linear transformation function, and the product of the sum of the weights and the constant term q of the linear transformation function, as shown in Equation 4 above. do. Assuming that the binary output outputs -1 and +1, which are signed values, in the linear conversion function, p, the coefficient of X, is 0.5, and q, the constant term, is 0.5, as shown in Equation 1 (2) .

이로부터 변환된 문턱값(tht)은 0.5×(-1.4) + 0.5×(+1) = -0.2로 연산된다. 따라서, 변환된 가중합(Yt)과 변환된 문턱값(tht)을 비교하여 바이너리 출력(Zb)을 연산한다. 즉, 변환 가중합(yt)은 변환된 문턱값(tht)과 비교되며, 변환 가중합(yt)이 변환된 문턱값(tht)보다 크거나 같으면 부호를 가진 값인 +1이 출력되고, 변환 가중합(Yt)이 변환된 문턱값(tht)보다 작으면 부호를 가진 값인 -1이 출력된다. The threshold value (th t ) converted therefrom is calculated as 0.5×(-1.4) + 0.5×(+1) = -0.2. Therefore, a binary output (Zb) is calculated by comparing the transformed weighted sum (Y t ) and the transformed threshold value (th t ). That is, the transformation weighted sum (y t ) is compared with the transformed threshold value (th t ), and if the transformation weighted sum (y t ) is greater than or equal to the transformed threshold value (th t ), a signed value of +1 is output. If the transformation weighted sum (Y t ) is less than the transformed threshold value (th t ), a value with a sign of -1 is output.

실시예 2Example 2

이하에서는 첨부된 도면들을 참조하여 또 다른 실시예에 의한 바이너리 뉴럴 네트워크의 연산 방법을 설명한다. 도 5는 다른 실시예의 바이너리 뉴럴 네트워크의 연산 방법의 개요를 설명한 순서도이고, 도 6은 바이너리 뉴럴 네트워크의 연산 장치(2)의 개요를 도시한 도면이다. 도 5 및 도 6을 참조하면, 바이너리 뉴럴 네트워크의 연산 방법은 단위 셀(100) 및 문턱값 메모리 셀(110)을 프로그램하는 단계(S1000)와, 비트라인(BL)과 변환된 입력 성분에 상응하는 전압을 워드라인(WL)으로 제공하여 단위 셀(100)에 포함되어 비트 라인(BL)과 연결된 제1 패스 스위치 및 반전 비트 라인(BLB)과 연결된 제2 패스 스위치를 제어하는 단계(S2000)와, 비트라인(BL)의 전압 변화 및 반전 비트라인(BLB)의 전압의 변화를 검출하는 단계(S3000) 및 검출된 전압의 변화들로부터 바이너리 출력을 연산하는 단계(S4000)를 포함한다.Hereinafter, a method for calculating a binary neural network according to another embodiment will be described with reference to the accompanying drawings. FIG. 5 is a flowchart illustrating an outline of a binary neural network calculation method according to another embodiment, and FIG. 6 is a diagram showing an outline of a binary neural network calculation device 2. Referring to FIGS. 5 and 6 , the binary neural network calculation method includes programming the unit cell 100 and the threshold value memory cell 110 (S1000), and corresponds to the bit line BL and the converted input component. providing a voltage to the word line WL to control the first pass switch included in the unit cell 100 and connected to the bit line BL and the second pass switch connected to the inverted bit line BLB (S2000) and detecting the voltage change of the bit line BL and the voltage change of the inverted bit line BLB (S3000) and calculating a binary output from the detected voltage changes (S4000).

다만, 예시된 실시예에서, 제1 및 제2 인버터(I1, I2)들이 비트 라인(BL) 혹은 반전 비트 라인(BLB)을 풀 다운하여 비트 라인(BL) 혹은 반전 비트 라인(BLB)에 전압을 미치는 영향이 풀 업하여 미치는 영향에 비하여 우세(dominant)하다. 이하에서는 이러한 점으로부터 용이한 이해를 위하여 풀 다운의 영향을 기초로 설명한다. However, in the illustrated embodiment, the first and second inverters I1 and I2 pull down the bit line BL or the inverted bit line BLB so that the voltage is applied to the bit line BL or the inverted bit line BLB. The effect of pulling up is dominant compared to the effect of pulling up. Hereinafter, the effect of pull-down will be described based on this point for easy understanding.

도 6으로 예시된 실시예에서, 바이너리 뉴럴 네트워크의 컬럼(2)은 비트 라인(BL), 반전 비트 라인(BLB)에 연결된 단위셀(100)들과, 문턱값(threshold)을 저장하는 문턱값 메모리 셀(110)들 및 비트 라인의 전압과 반전 비트 라인에 형성된 전압을 비교하여 출력하는 감지 증폭기(200)를 포함한다. In the embodiment illustrated in FIG. 6 , column 2 of the binary neural network includes unit cells 100 connected to the bit line BL and the inverted bit line BLB, and a threshold value for storing a threshold value. The memory cells 110 and the sense amplifier 200 compare the voltage of the bit line with the voltage formed on the inverted bit line and output the result.

도시된 실시예에서, 복수의 단위 셀(100)들은 각각 워드 라인(WL)들에 연결될 수 있고, 복수의 단위 셀(100)들은 각각 동일한 비트 라인(BL)과 반전 비트 라인(BLB)에 연결될 수 있다. 또한, 복수의 문턱값 메모리 셀(110)들은 각각 워드 라인을 통해 문턱값 제어 신호가 제공되고, 단위 셀(100)들과 동일한 비트 라인(BL)과 반전 비트 라인(BLB)에 연결될 수 있다.In the illustrated embodiment, each of the plurality of unit cells 100 may be connected to word lines WL, and each of the plurality of unit cells 100 may be connected to the same bit line BL and inverted bit line BLB. can In addition, each of the plurality of threshold value memory cells 110 may receive a threshold value control signal through a word line, and may be connected to the same bit line BL and inverted bit line BLB as the unit cells 100 .

도시된 실시예에서, 비트 라인(BL)과 반전 비트 라인(BLB)들은 각각 감지 증폭기(200)의 반전 입력과 비반전 입력에 연결된다. 그러나, 이는 일 예일 따름이며, 비트 라인(BL), 반전 비트 라인(BLB)들과 감지 증폭기(200)의 입력은 달리 연결될 수 있다. 다만, 간결하고 명확한 설명과 용이한 이해를 위하여 비트 라인(BL)과 반전 비트 라인(BLB)들이 각각 감지 증폭기(200)의 반전 입력과 비반전 입력에 연결된 실시예를 기초로 설명한다. In the illustrated embodiment, bit line BL and inverting bit line BLB are connected to an inverting input and a non-inverting input of sense amplifier 200, respectively. However, this is just an example, and the bit line BL, the inverted bit line BLB and the input of the sense amplifier 200 may be connected differently. However, for concise and clear description and easy understanding, an embodiment in which the bit line BL and the inverted bit line BLB are respectively connected to an inverting input and a non-inverting input of the sense amplifier 200 will be described.

감지 증폭기(200)는 비트 라인(BL)에 형성된 전압이 반전 비트 라인(BLB)에 형성된 전압보다 크면 논리 로우의 신호를 출력하고, 반전 비트 라인(BLB)에 형성된 전압이 비트 라인(BL)에 형성된 전압보다 크면 논리 하이 신호를 출력한다. 감지 증폭기(200)의 출력 신호는 후술할 바와 같이 바이너리 뉴럴 네트워크의 출력 신호일 수 있다. The sense amplifier 200 outputs a logic low signal when the voltage formed on the bit line BL is greater than the voltage formed on the inverted bit line BLB, and the voltage formed on the inverted bit line BLB is applied to the bit line BL. If it is greater than the formed voltage, a logic high signal is output. An output signal of the sense amplifier 200 may be an output signal of a binary neural network as will be described later.

도 7은 도 6에서 도시된 단위 셀(100) 중 어느 한 단위 셀(100)의 개요를 도시한 도면이다. 도 7을 참조하면, 단위 셀(100a)은 서로 크로스 커플(cross-coupled) 되어 연결된 두 개의 인버터들(I1, I2)과 두 인버터들을 비트 라인(BL)과 연결하는 제1 패스 스위치(P1)와 반전 비트 라인(BLB)과 연결하는 제2 패스 스위치(P2)를 포함한다. FIG. 7 is a diagram showing an outline of any one unit cell 100 among the unit cells 100 shown in FIG. 6 . Referring to FIG. 7 , the unit cell 100a includes two inverters I1 and I2 cross-coupled to each other and a first pass switch P1 connecting the two inverters to the bit line BL. and a second pass switch P2 connected to the inverted bit line BLB.

두 개의 인버터들(I1, I2)에서 어느 하나의 출력은 다른 하나의 입력으로 제공된다. 따라서, 두 개의 인버터들(I1, I2)은 서로 상보적인 형태로 데이터를 저장한다. 두 개의 인버터들(I1, I2)이 저장하는 데이터는 바이너리 뉴럴 네트워크의 가중치 성분(w)일 수 있다. The output of one of the two inverters I1 and I2 is provided to the input of the other. Accordingly, the two inverters I1 and I2 store data in a complementary form. Data stored by the two inverters I1 and I2 may be a weight component w of a binary neural network.

변환된 입력 성분(xt)에 상응하는 신호가 워드 라인(WL)으로 제공된다. 일 예로, 변환된 입력 성분이 부호를 가지지 않은(unsigned) 1이면 워드 라인(WL)을 통해 논리 하이 상태의 전압이 제공되고, 변환된 입력 성분이 부호를 가지지 않은(unsigned) 0이면 워드 라인(WL)을 통해 논리 로우 상태의 전압이 제공된다. A signal corresponding to the converted input component (x t ) is provided to the word line (WL). For example, if the converted input component is unsigned (unsigned) 1, a logic high state voltage is provided through the word line (WL), and if the converted input component is unsigned (unsigned) 0, the word line ( A logic low state voltage is provided through WL).

단위 셀(100)은 도시된 실시예와 같이 스태틱 메모리(SRAM, static random access memory)일 수 있으며, 상술한 바와 같이 바이너리 뉴럴 네트워크의 웨이트 값을 저장할 수 있다. 단위 셀(100)은 총 6 개의 트랜지스터로 이루어질 수 있다. 이로부터 14 개 이상의 트랜지스터들이 필요하였던 종래의 뉴럴 네트워크 연산 셀에 비하여 작은 면적으로 형성될 수 있으며, 근래에 사용되는(conventional)한 메모리 공정을 통하여 용이하게 형성할 수 있다는 장점이 제공된다. The unit cell 100 may be a static random access memory (SRAM) as in the illustrated embodiment, and may store a weight value of a binary neural network as described above. The unit cell 100 may include a total of 6 transistors. From this, an advantage is provided that it can be formed in a smaller area than a conventional neural network calculation cell that requires 14 or more transistors, and can be easily formed through a conventional memory process.

문턱값 메모리 셀(110)의 구성은 단위 셀(100)의 구성과 동일하다. 따라서, 문턱값 메모리 셀(110)은 서로 크로스 커플(cross-coupled) 되어 연결된 두 개의 인버터들(I1, I2)과 두 인버터들을 비트 라인(BL)과 연결하는 제1 패스 스위치(P1)와 반전 비트 라인(BLB)과 연결하는 제2 패스 스위치(P2)를 포함한다. The configuration of the threshold value memory cell 110 is the same as that of the unit cell 100 . Therefore, the threshold value memory cell 110 is cross-coupled with two inverters I1 and I2 connected to each other and a first pass switch P1 connecting the two inverters to the bit line BL and inverted. A second pass switch P2 connected to the bit line BLB is included.

이하에서는 도 5 내지 도 7을 참조하여 본 실시예에 의한 바이너리 뉴럴 네트워크 연산 방법을 설명한다. 단위 셀(100)들 및 문턱값 메모리 셀(110)들이 프로그램되는 단계(S1000)가 수행된다. 단위 셀(100)은 프로그램되어 가중치 값을 저장한다. 단위 셀(100)을 프로그램하는 단계는 단위셀(100)을 이루는 제1 및 제2 인버터(I1, I2)가 서로 상보적인 형태로 가중치 값을 저장하도록 수행된다. Hereinafter, a binary neural network calculation method according to the present embodiment will be described with reference to FIGS. 5 to 7 . A step (S1000) of programming the unit cells 100 and the threshold value memory cells 110 is performed. The unit cell 100 is programmed to store weight values. The step of programming the unit cell 100 is performed so that the first and second inverters I1 and I2 constituting the unit cell 100 store weight values in a form complementary to each other.

문턱값 메모리 셀(110)들을 프로그램 하는 단계는 문턱값 메모리 셀(110)들이 비트 라인(BL) 혹은 반전 비트 라인(BLB)을 정수화된 문턱값(tht i)에 상응하도록 풀 다운 하도록 수행된다. The step of programming the threshold value memory cells 110 is performed so that the threshold value memory cells 110 pull down the bit line BL or the inverted bit line BLB to correspond to the integerized threshold value th t i . .

변환된 문턱값(tht)이 정수와 소수를 포함하는 실수일 수 있다. 변환된 가중합 성분(yt)은 -1, +1 등의 정수(integer) 값이므로, 변환된 가중합 성분(yt)과의 연산 결과(일 예로, 수학식 4의 ② 식)와의 정합성을 유지한 채로 변환된 문턱값(tht)을 정수(inteter)로 변환할 수 있다. 일 예로, 변환된 문턱값(tht)을 정수화하는 과정은 올림(ceil) 연산 혹은 내림(floor) 연산을 수행하여 이루어질 수 있다. The converted threshold value (th t ) may be a real number including an integer and a decimal number. Since the converted weighted sum component (y t ) is an integer value such as -1 or +1, consistency with the result of the operation with the converted weighted sum component (y t ) (for example, equation (2) in Equation 4) The converted threshold value (th t ) can be converted into an integer (inteter) while maintaining . For example, the process of integerizing the converted threshold value (th t ) may be performed by performing a ceil operation or a floor operation.

일 실시예로, 수학식 4의 ②식과 같이 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 크거나 같을 때 바이너리 뉴럴 네트워크가 +1을 출력하고, 이외의 경우에는 -1을 출력하는 경우에는 변환된 문턱값을 가까운 정수로 올림(ceil) 연산한다. 이와 같이 변환된 문턱값을 정수화 하여도 정수화하지 않은 연산 결과와 동일하다. In one embodiment, when the converted weighted sum component (y t ) is greater than or equal to the converted threshold value (th t ) as shown in ② of Equation 4, the binary neural network outputs +1, and in other cases - If 1 is output, the converted threshold value is rounded up to the nearest integer. Even if the converted threshold value is integerized in this way, it is the same as the operation result without integerization.

예시되지 않은 실시에에서, 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 클 때 바이너리 뉴럴 네트워크가 +1을 출력하고, 이외의 경우에는 -1을 출력하는 경우에는 변환된 문턱값을 가까운 정수로 내림(floor) 연산하여 변환된 문턱값을 정수화한다. 이와 같이 변환된 문턱값을 정수화 하여도 정수화하지 않은 연산 결과와 동일하다. In an embodiment not illustrated, the binary neural network outputs +1 when the transformed weighted sum component (y t ) is greater than the transformed threshold value (th t ), and outputs -1 in other cases. The converted threshold value is converted into an integer by performing a floor operation on the converted threshold value to a nearest integer. Even if the converted threshold value is integerized in this way, it is the same as the operation result without integerization.

수학식 4의 ②로 예시된 실시예에서, 문턱값이 -(m+α)(m: 양의 정수, α: 0≤ α< 1인 실수)이면, 정수화된 변환된 문턱값(tht i)은 -m이다. 문턱값 메모리 셀(110)을 프로그램하는 과정에서 제어부는 m 개의 문턱값 메모리 셀(110)이 비트 라인(BL)을 풀다운하도록 문턱값 메모리 셀(110)을 프로그램한다.In the embodiment illustrated by ② of Equation 4, if the threshold value is -(m + α) (m: a positive integer, α: a real number with 0≤ α < 1), the integer converted threshold value (th t i ) is -m. In the process of programming the threshold value memory cell 110, the controller programs the threshold value memory cell 110 so that m threshold value memory cells 110 pull down the bit line BL.

또한, 문턱값이 n+α(n: 양의 정수, α: 0

Figure pat00005
α< 1인 실수)이면, 정수화된 변환된 문턱값(tht i)은 n+1 이다. 위에서 설명된 문턱값 메모리 셀(110)을 프로그램하는 과정에서 n+1 개의 문턱값 메모리 셀(110)이 반전 비트 라인(BLB)를 풀 다운 하도록 문턱값 메모리 셀(110)을 프로그램한다. In addition, if the threshold value is n + α (n: positive integer, α: 0
Figure pat00005
If α<1 real number), the integer transformed threshold value (th t i ) is n+1. In the process of programming the threshold value memory cell 110 described above, the threshold value memory cell 110 is programmed so that n+1 threshold value memory cells 110 pull down the inverted bit line BLB.

일 실시예로, 정수화된 변환된 문턱값이 m 인 경우에, 복수의 문턱값 메모리 셀들 중 k 개는 +1로 프로그램될 수 있고, 문턱값 메모리 셀들 중 j 개는 -1로 프로그램한다. 이와 같이 프로그램된 문턱값 메모리 셀(110)들이 활성화 될 때, k - j = m 이 되도록 프로그램될 수 있다. In one embodiment, when the integer converted threshold value is m, k of the plurality of threshold value memory cells may be programmed as +1, and j of the threshold value memory cells may be programmed as -1. When the threshold value memory cells 110 programmed as described above are activated, they may be programmed so that k - j = m.

또 다른 실시예로, 정수화된 변환된 문턱값이 m 인 경우에, 복수의 문턱값 메모리 셀들 중 m 개를 +1로 프로그램하여 수행할 수 있으며, 정수화된 변환된 문턱값이 - m 인 경우에, 복수의 문턱값 메모리 셀들 중 m 개를 -1로 프로그램하여 수행할 수 있다. As another embodiment, when the integer converted threshold value is m, m of the plurality of threshold value memory cells may be programmed to +1, and when the integer converted threshold value is -m , can be performed by programming m of the plurality of threshold value memory cells as -1.

후술할 바와 같이 어느 한 단위 셀(100)에 저장되는 가중치 값이 +1일 때 제1 및 제2 패스 트랜지스터가 도통되면 비트 라인(BL)이 풀다운되나, 문턱값 메모리 셀(100)에 저장되는 변환된 문턱값(tht)이 +1이고, 제1 및 제2 패스 트랜지스터가 도통되면 반전 비트 라인(BLB)이 풀다운된다. As will be described later, when the weight value stored in any one unit cell 100 is +1 and the first and second pass transistors are turned on, the bit line BL is pulled down, but the value stored in the threshold value memory cell 100 When the converted threshold value th t is +1 and the first and second pass transistors are conductive, the inverting bit line BLB is pulled down.

어느 한 단위 셀(100)에 저장되는 가중치 값이 -1일 때 제1 및 제2 패스 트랜지스터가 도통되면 반전 비트 라인(BLB)이 풀다운되나, 문턱값 메모리 셀(100)에 저장되는 변환된 문턱값(tht)이 -1이면 제1 및 제2 패스 트랜지스터가 도통되면 비트 라인(BL)이 풀다운 된다. When the weight value stored in any one unit cell 100 is -1 and the first and second pass transistors are turned on, the inverted bit line BLB is pulled down, but the converted threshold stored in the threshold value memory cell 100 If the value th t is -1, the bit line BL is pulled down when the first and second pass transistors are conductive.

즉, 가중치 값을 저장하는 단위 셀(100)에 저장되는 가중치 값과 변환된 문턱값을 저장하는 문턱값 메모리 셀(100)에 저장되는 변환된 문턱값(tht)이 동일한 경우에 각각은 비트 라인(BL)과 반전 비트 라인(BLB) 중 서로 다른 것을 풀 다운 한다. That is, when the weight value stored in the unit cell 100 for storing the weight value and the converted threshold value (th t ) stored in the threshold value memory cell 100 for storing the converted threshold value are the same, each bit A different line (BL) and an inverted bit line (BLB) are pulled down.

워드 라인(WL)을 통하여 변환된 입력 성분(xt)에 상응하는 전압이 제공되면 제1 패스 스위치(P1)의 게이트 전극과 제2 패스 스위치(P2)의 게이트 전극에 워드 라인(WL)을 통하여 변환된 입력 성분(xt)에 상응하는 전압이 제공된다(S2000). 제1 패스 스위치(P1)와 제2 패스 스위치(P2)는 게이트 전극으로 제공된 전압에 따라서 차단되거나, 도통된다. When a voltage corresponding to the converted input component xt is supplied through the word line WL, the gate electrode of the first pass switch P1 and the gate electrode of the second pass switch P2 pass through the word line WL. A voltage corresponding to the converted input component (x t ) is provided (S2000). The first pass switch P1 and the second pass switch P2 are either blocked or conducted according to the voltage applied to the gate electrode.

단위 셀(100)에서, 제1 패스 스위치(P1)는 도통되어 제1 인버터(I1)의 출력과 제2 인버터(I2)의 입력을 비트 라인(BL)에 연결하고, 제2 패스 스위치(P2)는 도통되어 제1 인버터(I1)의 입력과 제2 인버터(I2)의 출력을 반전 비트 라인(BLB)에 연결한다. 도시된 실시예에서 제1 패스 스위치(P1)와 제2 패스 스위치(P2)는 모두 NMOS 트랜지스터로 예시되었으나, 이는 예시일 따름이며 반대 도전형인 PMOS 트랜지스터로 형성될 수 있다. 다만, 이러한 경우에는 변화된 신호의 방식을 이용하여야 함은 통상의 기술자에게 자명할 것이다. In the unit cell 100, the first pass switch P1 is conducted to connect the output of the first inverter I1 and the input of the second inverter I2 to the bit line BL, and the second pass switch P2 ) is conducted to connect the input of the first inverter I1 and the output of the second inverter I2 to the inverting bit line BLB. In the illustrated embodiment, both the first pass switch P1 and the second pass switch P2 are illustrated as NMOS transistors, but this is only an example and may be formed as a PMOS transistor of opposite conductivity type. However, in this case, it will be obvious to those skilled in the art that a changed signal method should be used.

도시된 실시예에서, 변환된 입력 성분(xt)이 1이면 워드 라인(WL)에는 제1 패스 스위치(P1)와 제2 패스 스위치(P2)들이 도통될 수 있는 논리 하이 상태의 신호가 제공된다. 일 예로, 논리 하이 상태의 신호는 제1 패스 스위치(P1) 및 제2 패스 스위치(P2)들이 도통되는 문턱 전압보다 크거나 같은 전압일 수 있다. 또한 변환된 입력 성분(xt)이 0이면 워드 라인(WL)에는 제1 패스 스위치(P1)와 제2 패스 스위치(P2)들이 차단될 수 있는 논리 로우 상태의 신호가 제공된다. In the illustrated embodiment, if the converted input component (x t ) is 1, a logic high state signal is provided to the word line WL to allow the first pass switch P1 and the second pass switch P2 to conduct. do. For example, the signal in the logic high state may be a voltage greater than or equal to a threshold voltage at which the first pass switch P1 and the second pass switch P2 are turned on. In addition, when the converted input component (x t ) is 0, a signal in a logic low state in which the first pass switch P1 and the second pass switch P2 are blocked is provided to the word line WL.

워드 라인(WL)을 통하여 변환된 입력 성분에 상응하는 신호가 단위셀(100)들에 제공되고, 문턱값 제어 신호가 문턱값 메모리 셀(110)들에 제공됨에 따라 논리 연산이 이루어지고, 비트 라인(BL), 반전 비트 라인(BLB)의 전압에 영향을 미친다(S3000). 아래의 표 1은 단위 셀(100)이 수행하는 연산을 개요적으로 예시한 결과이다. A signal corresponding to the input component converted through the word line WL is provided to the unit cells 100 and a threshold value control signal is provided to the threshold value memory cells 110, so that a logic operation is performed, and a bit The voltage of the line BL and the inverted bit line BLB is affected (S3000). Table 1 below shows results schematically illustrating operations performed by the unit cell 100 .

Figure pat00006
Figure pat00006

(0: 논리 로우, 1:논리 하이, PU: 풀 업, PD: 풀 다운)(0: logic low, 1: logic high, PU: pull up, PD: pull down)

워드 라인(WL)을 통해 제공된 신호가 논리 로우 상태의 신호이면 제1 패스 스위치(P1)와 제2 패스 스위치(P2)는 모두 차단된다. 따라서 두 개의 인버터들(I1, I2)이 저장한 가중치(w) 값과 무관하게 비트 라인(BL)과 반전 비트 라인(BLB)의 전압은 변화하지 않는다. When the signal provided through the word line WL is in a logic low state, both the first pass switch P1 and the second pass switch P2 are cut off. Accordingly, the voltages of the bit line BL and the inverted bit line BLB do not change regardless of the weight value w stored by the two inverters I1 and I2.

워드 라인(WL)을 통해 제공된 신호가 논리 하이 상태의 신호이면 제1 패스 스위치(P1)와 제2 패스 스위치(P2)는 모두 도통된다. 단위 셀(100)에 저장된 가중치(w) 값이 - 1일 때 제1 인버터(I1)의 출력 Q는 논리 하이이고, 제2 인버터(I2)의 출력 Qb는 논리 로우이다. 따라서, 제1 인버터(I1)은 비트 라인(BL)을 풀 업하고 제2 인버터(I2)는 반전 비트 라인(BLB)을 풀 다운한다.When a signal provided through the word line WL is a signal in a logic high state, both the first pass switch P1 and the second pass switch P2 are conducted. When the value of the weight w stored in the unit cell 100 is -1, the output Q of the first inverter I1 is logic high and the output Qb of the second inverter I2 is logic low. Accordingly, the first inverter I1 pulls up the bit line BL and the second inverter I2 pulls down the inverted bit line BLB.

마찬가지로, 워드 라인(WL)을 통해 제공된 신호가 논리 하이 상태의 신호이면 제1 패스 스위치(P1)와 제2 패스 스위치(P2)는 모두 도통된다. 단위 셀(100a)에 저장한 가중치(w) 값이 + 1일 때 제2 인버터(I2)의 출력 Qb는 논리 하이이고, 제1 인버터(I1)의 출력 Q는 논리 로우이다. 따라서, 제1 인버터(I1)은 비트 라인(BL)을 풀 다운하고 제2 인버터(I2)는 반전 비트 라인(BLB)을 풀 업한다. Similarly, when the signal provided through the word line WL is a signal in a logic high state, both the first pass switch P1 and the second pass switch P2 are conducted. When the value of the weight w stored in the unit cell 100a is +1, the output Qb of the second inverter I2 is logic high and the output Q of the first inverter I1 is logic low. Accordingly, the first inverter I1 pulls down the bit line BL and the second inverter I2 pulls up the inverted bit line BLB.

아래의 표 2는 문턱값 메모리 셀(110)이 수행하는 연산을 개요적으로 예시한 표이다. 일 실시예로, Table 2 below is a table schematically illustrating an operation performed by the threshold value memory cell 110 . In one embodiment,

Input Input ThresholdThreshold OutputOutput BLBL BLBBLB 00 1One -- -- 00 -1-One -- -- 1One 1One PUPU PDPD 1One -1-One PDPD PUPU

(0: 논리 로우, 1:논리 하이, PU: 풀 업, PD: 풀 다운)(0: logic low, 1: logic high, PU: pull up, PD: pull down)

문턱값 메모리 셀(110)에 저장된 변환된 문턱값(tht)이 1일 때 제1 및 제2 패스 트랜지스터가 도통되면 반전 비트 라인(BLB)이 풀다운된다. 문턱값 메모리 셀(110)에 저장되는 변환된 문턱값(tht)이 -1 일때, 제1 및 제2 패스 트랜지스터가 도통되면 비트 라인(BL)이 풀다운된다. 이것은 수학식 4의 ②식에서 변환된 가중합 성분(yt)과 변환된 문턱값(tht)을 같은 방향으로 이항하면 서로 다른 부호를 가지는 것에서 기인한다. When the converted threshold value th t stored in the threshold value memory cell 110 is 1 and the first and second pass transistors are conducted, the inverted bit line BLB is pulled down. When the converted threshold value th t stored in the threshold value memory cell 110 is -1, when the first and second pass transistors are turned on, the bit line BL is pulled down. This is due to the fact that the converted weighted sum component (y t ) and the converted threshold value (th t ) in equation (2) of Equation 4 have different signs when transposed in the same direction.

또한 정수화된 변환된 문턱값(tht i)이 -m이면 m 개의 문턱값 메모리 셀(100)이 도통되어 비트 라인(BL)을 풀다운하는 것과 동일하며, 정수화된 변환된 문턱값(tht i)이 n 이면 n 개의 문턱값 메모리 셀(100)이 도통되어 반전 비트 라인(BL)을 풀다운하는 것과 동일하다. 이로부터 변환된 가중합 성분(yt)과 변환된 문턱값(tht)이 미치는 영향이 비트 라인(BL)/반전 비트 라인(BLB)에 합쳐지는 것을 알 수 있다. In addition, if the integer converted threshold value (th t i ) is -m, it is the same as that m threshold value memory cells 100 are conducted and the bit line BL is pulled down, and the integer converted threshold value (th t i ) is n, it is the same as that n threshold value memory cells 100 are conducted and the inverted bit line BL is pulled down. From this, it can be seen that the effect of the converted weighted sum component (y t ) and the converted threshold value (th t ) is added to the bit line BL/inverted bit line BLB.

비트 라인(BL)에 형성된 전압과 반전 비트 라인(BLB)에 형성된 전압을 비교하여 바이너리 뉴럴 네트워크(BNN) 출력 값의 성분을 얻는다(S4000). 일 실시예로, 감지 증폭기(200)는 비트 라인(BL)에 형성된 전압과 반전 비트 라인(BLB)에 형성된 전압을 비교하여 상응하는 결과를 출력한다. 위에서 설명된 바와 같이 비트 라인(BL)과 반전 비트 라인(BLB)에 형성된 전압은 단위 셀(100)들과 문턱값 메모리 셀(110)들이 비트 라인(BL)혹은 반전 비트 라인(BLB)을 풀업/풀 다운 하여 형성된 결과이다. 따라서, 이들을 비교함으로써 바이너리 뉴럴 네트워크의 출력값을 얻을 수 있다. A component of a binary neural network (BNN) output value is obtained by comparing the voltage formed on the bit line BL with the voltage formed on the inverted bit line BLB (S4000). In one embodiment, the sense amplifier 200 compares the voltage formed on the bit line BL with the voltage formed on the inverted bit line BLB and outputs a corresponding result. As described above, the voltage formed on the bit line BL and the inverted bit line BLB causes the unit cells 100 and the threshold value memory cells 110 to pull up the bit line BL or the inverted bit line BLB. / This is the result formed by pulling down. Therefore, by comparing them, the output value of the binary neural network can be obtained.

이하에서는 도 8 및 도 9로 예시된 실시예를 참조하여 연산과정을 설명한다. 도 8로 예시된 실시예에서, 변환된 문턱값(tht)이 -0.2 이고, 수학식 4의 ②식과 같이 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 크거나 같을 때 바이너리 뉴럴 네트워크의 출력은 +1이고, 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 작을 때 바이너리 뉴럴 네트워크의 출력은 -1인 실시예를 가정한다. Hereinafter, a calculation process will be described with reference to the embodiment illustrated in FIGS. 8 and 9 . In the embodiment illustrated in FIG. 8 , the converted threshold value (th t ) is -0.2, and the converted weighted sum component (y t ) is greater than the converted threshold value (th t ) as in equation ② in Equation 4, or Assume an embodiment in which the output of the binary neural network is +1 when they are equal and the output of the binary neural network is -1 when the transformed weighted sum component (y t ) is smaller than the transformed threshold value (th t ).

변환된 입력 성분(xt)들과 가중치 성분과의 곱셈 결과를 합하면 도 8로 도시된 바와 같이 2×(+1) + 3×(-1)로 연산된다. 이것은 세 개의 단위 셀(100)들이 반전 비트 라인(BLB)을 풀 다운하고, 두 개의 단위 셀(100)들이 비트 라인(BLB)을 풀 다운하는 것으로 나타낼 수 있다. The sum of the multiplication result of the converted input components (xt) and the weight component is calculated as 2×(+1) + 3×(−1) as shown in FIG. 8 . This can be represented by three unit cells 100 pulling down the inverted bit line BLB and two unit cells 100 pulling down the bit line BLB.

이어서, 변환된 문턱값(tht)은 -0.2이며, 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 크거나 같을 때 바이너리 뉴럴 네트워크의 출력은 +1이므로, 정수화된 변환된 문턱값(tht i)은 -0.2를 올림한 0이다. 따라서, 문턱값 메모리 셀(110)은 비트 라인(BL) 및 반전 비트 라인(BLB) 모두를 풀 다운 하지 않는다. Subsequently, the transformed threshold value (th t ) is -0.2, and the output of the binary neural network is +1 when the transformed weighted sum component (y t ) is greater than or equal to the transformed threshold value (th t ), so the integerized The transformed threshold value (th t i ) is 0 rounded up to -0.2. Therefore, the threshold value memory cell 110 does not pull down both the bit line BL and the inverted bit line BLB.

따라서, 감지 증폭기(200)는 각각 반전 입력에 연결된 비트 라인(BL)의 전압과 비반전 입력에 연결된 반전 비트 라인(BLB)의 전압을 비교한다. 상술한 예에서, 반전 비트 라인(BLB)의 전압이 반전 비트 라인(BL)의 전압에 비하여 크므로, 이를 비교한 결과인 논리 로우 상태의 신호를 출력한다. Therefore, the sense amplifier 200 compares the voltage of the bit line BL connected to the inverting input with the voltage of the inverting bit line BLB connected to the non-inverting input. In the above example, since the voltage of the inverted bit line BLB is greater than the voltage of the inverted bit line BL, a signal in a logic low state as a result of the comparison is output.

도 9로 예시된 실시예에서, 변환된 문턱값(tht)이 -3.2이고, 수학식 4의 ②식과 같이 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 크거나 같을 때 +1을 출력하는 실시예를 가정한다. In the embodiment illustrated in FIG. 9 , when the converted threshold value (tht) is -3.2 and the converted weighted sum component (yt) is greater than or equal to the converted threshold value (tht) as shown in Equation 2 in Equation 4 + Assume an embodiment that outputs 1.

변환된 입력 성분(xt)들과 가중치 성분과의 곱셈 결과를 도합하면 도 9로 도시된 바와 같이 2×(+1) + 4×(-1)로 연산된다. 이것은 네 개의 단위 셀(100)들이 반전 비트 라인(BLB)을 풀 다운하고, 두 개의 단위 셀(100)들이 비트 라인(BL)을 풀 다운하는 것으로 나타낼 수 있다. The sum of the multiplication results of the converted input components (xt) and the weight components is calculated as 2×(+1) + 4×(−1) as shown in FIG. 9 . This can be represented as four unit cells 100 pulling down the inverted bit line BLB and two unit cells 100 pulling down the bit line BL.

변환된 문턱값(tht)은 -3.2 이며, 변환된 가중합 성분(yt)이 변환된 문턱값(tht)보다 크거나 같을 때 바이너리 뉴럴 네트워크의 출력은 +1이므로 올림 연산을 수행하여 정수화된 변환된 문턱값(tht i)을 얻으며, 정수화된 변환된 문턱값(tht i)은 -3이다. The transformed threshold value (th t ) is -3.2, and when the transformed weighted sum component (y t ) is greater than or equal to the transformed threshold value (th t ), the output of the binary neural network is +1. The integer transformed threshold value (th t i ) is obtained, and the integer transformed transformed threshold value (th t i ) is -3.

올림 연산된 변환된 문턱값(tht)을 구현하기 위하여 제어부는 문턱값 메모리 셀(110)에 상응하는 문턱값 제어 신호를 제공한다. 즉, 세 개의 문턱값 메모리 셀(100)들이 도통되고, 비트 라인(BL)을 풀다운하므로, 비트 라인(BLB)에 형성된 전압에 정수화된 변환된 문턱값(tht i) 만큼 기여한다. In order to implement the converted threshold value (th t ) that has been rounded up, the control unit provides a threshold value control signal corresponding to the threshold value memory cell 110 . That is, since the three threshold value memory cells 100 conduct and pull down the bit line BL, they contribute to the voltage formed on the bit line BLB by the integer converted threshold value th t i .

결과적으로 두 개의 단위셀(100)과 세 개의 문턱값 메모리 셀(110)이 도통되어 비트 라인(BL)을 풀 다운하고, 네 개의 단위 셀(100)들이 도통되어 반전 비트 라인(BLB)을 풀 다운 한다. As a result, two unit cells 100 and three threshold value memory cells 110 are conducted to pull down the bit line BL, and four unit cells 100 are conducted to pull down the inverted bit line BLB. down

감지 증폭기(200)는 각각 반전 입력에 연결된 비트 라인(BL)의 전압과 비반전 입력에 연결된 반전 비트 라인(BLB)의 전압을 비교하며, 도시된 예에서, 반전 비트 라인(BLB)의 전압이 비트 라인(BL)의 전압에 비하여 크므로, 이를 비교한 결과인 논리 하이 상태의 신호를 출력한다. The sense amplifier 200 compares the voltage of the bit line (BLB) connected to the inverting input and the voltage of the inverting bit line (BLB) connected to the non-inverting input, and in the illustrated example, the voltage of the inverted bit line (BLB) is Since it is greater than the voltage of the bit line BL, a signal in a logic high state as a result of the comparison is output.

종래에는 많은 수의 MAC 연산에 따라 많은 양의 데이터 이동이 필요하였으나, 데이터 이동시의 대역폭(data bandwidth) 제한에 의한 병목 현상이 발생하고, 전력 소모량이 크다는 문제가 있었다. 그러나, 본 실시예는 메모리 내에서 MAC 연산이 가능하므로 데이터 이동양을 감소시켜 종래 기술의 데이터 병목 현상을 해소할 수 있으며, 데이터 전송에 소모되는 전력 소모를 감소시킬 수 있다는 장점이 제공된다. Conventionally, a large amount of data movement was required according to a large number of MAC operations, but there was a problem that a bottleneck phenomenon occurred due to a bandwidth limitation during data movement and power consumption was high. However, since the MAC operation is possible in the memory, the present embodiment can reduce the amount of data movement to solve the data bottleneck of the prior art and reduce power consumption for data transmission.

나아가, 종래 기술에서 바이너리 뉴럴 네트워크를 연산하기 위하여 회로내에 XNOR 연산을 수행할 수 있는 소자들을 구현하여 소자의 면적이 증가하였다. 그러나, 본 실시예는 XNOR 연산을 수행하지 않고 바이너리 뉴럴 네트워크를 연산할 수 있어 다이 사이즈 면에서 경제적이라는 장점도 제공된다. Furthermore, in the prior art, in order to calculate a binary neural network, the area of the device has increased by implementing elements capable of performing an XNOR operation in a circuit. However, the present embodiment also provides an advantage of being economical in terms of die size because a binary neural network can be calculated without performing an XNOR operation.

본 발명에 대한 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 실시를 위한 실시예로, 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.It has been described with reference to the embodiments shown in the drawings to aid understanding of the present invention, but this is an embodiment for implementation and is merely illustrative, and various modifications and equivalents may be made by those skilled in the art. It will be appreciated that other embodiments are possible. Therefore, the true technical scope of protection of the present invention will be defined by the appended claims.

1: 바이너리 뉴럴 네트워크 연산 장치 21:입력부
22: 출력부 23: 데이터 베이스
24: 메모리 24: 프로세서
2: 바이너리 뉴럴 네트워크 연산 장치 100: 단위 셀
110: 문턱값 메모리 셀
1: binary neural network arithmetic unit 21: input unit
22: output unit 23: database
24: memory 24: processor
2: binary neural network computing unit 100: unit cell
110: threshold value memory cell

Claims (24)

바이너리 뉴럴 네트워크(binary neural network)의 연산 방법으로, 상기 방법은:
제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계,
변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계 및
상기 선형 변환 함수로 변환된 문턱(threshold) 값과 상기 가중합을 비교하여 출력값을 연산하는 단계를 포함하는 바이너리 뉴럴 네트워크의 연산 방법.
An operation method of a binary neural network, the method comprising:
converting the provided input values into a linear transformation function;
calculating a weighted sum of the converted input values; and
and calculating an output value by comparing a threshold value converted by the linear conversion function with the weighted sum.
제1항에 있어서,
상기 바이너리 뉴럴 네트워크는 복수의 레이어들을 포함하고,
상기 바이너리 뉴럴 네트워크의 연산 방법은,
상기 복수의 레이어들 중 적어도 하나 이상의 레이어들에서 수행되는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 1,
The binary neural network includes a plurality of layers,
The calculation method of the binary neural network,
A method of calculating a binary neural network performed in at least one or more layers among the plurality of layers.
제1항에 있어서,
상기 변환된 입력 값들의 가중합을 연산하는 단계는,
변환되지 않은 입력값들의 가중합을 연산하는 단계를 포함하여 수행되는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 1,
Calculating the weighted sum of the converted input values,
A method of calculating a binary neural network, comprising calculating a weighted sum of untransformed input values.
제1항에 있어서,
상기 선형 변환 함수는,
수학식
Figure pat00007
로 표시되는 바이너리 뉴럴 네트워크의 연산 방법. (f(x): 선형 변환 함수, X: 입력값, p, q: 실수인 상수)
According to claim 1,
The linear transformation function is
math formula
Figure pat00007
The calculation method of the binary neural network represented by . (f(x): linear transformation function, X: input values, p, q: constants that are real numbers)
제4항에 있어서,
상기 가중합을 연산하는 단계는,
상기 p와 변환되지 않은 상기 입력 값들 가중합과의 곱셈 결과와,
상기 q와 연산된 가중치 합과의 곱셈 결과의 합을 연산하여 수행되는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 4,
In the step of calculating the weighted sum,
A multiplication result of the p and the weighted sum of the unconverted input values;
A method of calculating a binary neural network performed by calculating a sum of a multiplication result of the q and the calculated weight sum.
제1항에 있어서,
상기 선형 변환 함수로 변환된 문턱값은,
상기 p와 변환되지 않은 문턱값과의 곱셈 결과와,
상기 q와 연산된 가중치 합과의 곱셈 결과의 합인 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 1,
The threshold value converted by the linear conversion function is
The multiplication result of the p and the untransformed threshold value;
A method of calculating a binary neural network, which is the sum of the multiplication result of the q and the calculated weight sum.
제1항에 있어서,
상기 출력값을 연산하는 단계는,
상기 가중합이 상기 변환된 문턱값 보다 크거나 같은 경우 +1을 출력값으로 하고,
상기 가중합이 상기 변환된 문턱값 보다 작은 경우 -1을 출력값으로 하여 수행하는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 1,
Calculating the output value,
When the weighted sum is greater than or equal to the converted threshold value, +1 is set as an output value,
A method of calculating a binary neural network that is performed with -1 as an output value when the weighted sum is smaller than the converted threshold value.
제1항에 있어서,
상기 제공된 입력 값은 부호를 가진(signed) 값을 포함하고,
상기 변환된 입력 값들은 부호가 없는(unsigned) 값을 포함하며,
상기 출력 값은 부호를 가진(signed) 값을 포함하는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 1,
the provided input value includes a signed value;
The converted input values include unsigned values,
The output value is a method of calculating a binary neural network including a signed value.
바이너리 뉴럴 네트워크의 연산 장치로, 상기 연산 장치는:
적어도 하나 이상의 프로세서; 및
상기 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 포함하며, 상기 프로그램들은 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서들에서
바이너리 뉴럴 네트워크의 연산 방법이 수행되며, 상기 연산 방법은:
바이너리 뉴럴 네트워크(binary neural network)의 연산 방법으로, 상기 방법은:
제공된 입력 값들을 선형 변환 함수(linear transformation function)로 변환하는 단계,
변환된 입력 값들의 가중합(weighted sum)을 연산하는 단계 및
상기 선형 변환 함수로 변환된 문턱(threshold) 값과 상기 가중합을 비교하여 출력값을 연산하는 단계를 포함하는 바이너리 뉴럴 네트워크의 연산 장치.
A computation unit of a binary neural network, the computation unit comprising:
at least one processor; and
and a memory storing one or more programs executed by the processor, wherein the programs, when executed by the one or more processors, are stored in the one or more processors.
A calculation method of a binary neural network is performed, wherein the calculation method:
An operation method of a binary neural network, the method comprising:
converting the provided input values into a linear transformation function;
calculating a weighted sum of the converted input values; and
and calculating an output value by comparing a threshold value converted by the linear conversion function with the weighted sum.
제9항에 있어서,
상기 바이너리 뉴럴 네트워크는 복수의 레이어들을 포함하고,
상기 바이너리 뉴럴 네트워크의 연산 방법은,
상기 복수의 레이어들 중 적어도 하나 이상의 레이어들에서 수행되는 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 9,
The binary neural network includes a plurality of layers,
The calculation method of the binary neural network,
An apparatus for calculating a binary neural network performed in at least one layer among the plurality of layers.
제9항에 있어서,
상기 변환된 입력 값들의 가중합을 연산하는 단계는,
변환되지 않은 입력값들의 가중합을 연산하는 단계를 포함하여 수행되는 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 9,
Calculating the weighted sum of the converted input values,
An apparatus for calculating a binary neural network, comprising calculating a weighted sum of untransformed input values.
제9항에 있어서,
상기 선형 변환 함수는,
수학식
Figure pat00008
로 표시되는 바이너리 뉴럴 네트워크의 연산 장치. (f(X): 선형 변환 함수, X: 입력값, p, q: 실수인 상수)
According to claim 9,
The linear transformation function is
math formula
Figure pat00008
The computing unit of the binary neural network represented by . (f(X): linear transformation function, X: input value, p, q: constant real number)
제12항에 있어서,
상기 가중합을 연산하는 단계는,
상기 p와 변환되지 않은 상기 입력 값들 가중합과의 곱셈 결과와,
상기 q와 연산된 가중치 합과의 곱셈 결과의 합을 연산하여 수행되는 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 12,
In the step of calculating the weighted sum,
A multiplication result of the p and the weighted sum of the unconverted input values;
A binary neural network calculator performed by calculating the sum of the multiplication result of the q and the calculated weight sum.
제9항에 있어서,
상기 선형 변환 함수로 변환된 문턱값은,
상기 p와 변환되지 않은 문턱값과의 곱셈 결과와,
상기 q와 연산된 가중치 합과의 곱셈 결과의 합인 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 9,
The threshold value converted by the linear conversion function is
The multiplication result of the p and the untransformed threshold value;
A binary neural network calculator that is the sum of the multiplication result of the q and the calculated weight sum.
제9항에 있어서,
상기 출력값을 연산하는 단계는,
상기 가중합이 상기 변환된 문턱값 보다 크거나 같은 경우 +1을 출력값으로 하고,
상기 가중합이 상기 변환된 문턱값 보다 작은 경우 -1을 출력값으로 하여 수행하는 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 9,
Calculating the output value,
When the weighted sum is greater than or equal to the converted threshold value, +1 is set as an output value,
A binary neural network calculation device that performs -1 as an output value when the weighted sum is smaller than the converted threshold value.
제9항에 있어서,
상기 제공된 입력 값은 부호를 가진(signed) 값을 포함하고,
상기 변환된 입력 값들은 부호가 없는(unsigned) 값을 포함하며,
상기 출력 값은 부호를 가진(signed) 값을 포함하는 바이너리 뉴럴 네트워크의 연산 장치.
According to claim 9,
the provided input value includes a signed value;
The converted input values include unsigned values,
The output value is a binary neural network calculation device including a signed value.
바이너리 뉴럴 네트워크의 연산 방법으로, 상기 연산 방법은:
복수의 단위 셀들에 가중치 값을 저장하여 프로그램하는 단계와,
각 단위 셀에 연결된 워드 라인으로 변환된 입력 성분에 상응하는 전압을 제공하여 상기 가중치 값과의 연산이 수행되는 단계와,
변환된 가중합 성분에 상응하는 비트라인의 전압 및 반전 비트라인의 전압들을 검출하는 단계 및
검출된 상기 전압들로부터 바이너리 뉴럴 네트워크 출력을 연산하는 단계를 포함하는 바이너리 뉴럴 네트워크의 연산 방법.
A calculation method for a binary neural network, the calculation method comprising:
Storing and programming weight values in a plurality of unit cells;
providing a voltage corresponding to an input component converted to a word line connected to each unit cell and performing an operation with the weight value;
detecting voltages of a bit line corresponding to the converted weighted sum component and voltages of an inverted bit line; and
A method of calculating a binary neural network comprising calculating a binary neural network output from the detected voltages.
제17항에 있어서,
상기 프로그램하는 단계는,
복수의 문턱값 메모리 셀들에 정수화된 변환된 문턱값을 저장하는 단계를 더 수행하는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 17,
The programming step is
A method of calculating a binary neural network, further performing the step of storing the converted threshold value converted into an integer in a plurality of threshold value memory cells.
제17+1항에 있어서,
상기 정수화된 변환된 문턱값은,
상기 변환된 문턱값을 올림(ceil) 연산, 내림(floor) 연산하여 정수화된 값인 뉴럴 네트워크의 연산 방법.
According to claim 17+1,
The integer converted threshold value is,
The neural network calculation method, which is an integer value by performing a ceil operation and a floor operation on the converted threshold value.
제18항에 있어서,
상기 비트라인의 전압 및 상기 반전 비트라인의 전압은
상기 정수화된 변환된 문턱값에 상응하여 상기 복수의 문턱값 메모리 셀들이 상기 비트라인에 형성한 전압 성분 및 상기 반전 비트라인에 형성한 전압 성분을 포함하는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 18,
The voltage of the bit line and the voltage of the inverted bit line are
The method of calculating a binary neural network comprising a voltage component formed on the bit line and a voltage component formed on the inverted bit line by the plurality of threshold value memory cells corresponding to the integer converted threshold value.
제18항에 있어서,
상기 단위 셀에 저장된 가중치 값과 상기 문턱값 메모리 셀에 저장된 문턱값이 동일한 값일 때,
상기 단위 셀이 상기 비트 라인 및 상기 반전 비트 라인 중 어느 하나를 풀 다운 하면,
상기 문턱값 메모리 셀은 상기 비트 라인 및 상기 반전 비트 라인 중 다른 하나를 풀 다운하는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 18,
When the weight value stored in the unit cell and the threshold value stored in the threshold value memory cell are the same value,
When the unit cell pulls down any one of the bit line and the inverted bit line,
The threshold value memory cell pulls down the other one of the bit line and the inverted bit line.
제18항에 있어서,
상기 단위 셀 및 상기 문턱값 메모리 셀은 각각 6 개의 트랜지스터로 이루어진 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 18,
The unit cell and the threshold value memory cell are each composed of 6 transistors.
제17항에 있어서,
상기 바이너리 뉴럴 네트워크의 연산 방법은,
XNOR 연산을 수행하지 않는 뉴럴 네트워크의 연산 방법.
According to claim 17,
The calculation method of the binary neural network,
Neural network calculation method that does not perform XNOR operation.
제17항에 있어서,
상기 바이너리 뉴럴 네트워크의 연산 방법은 메모리 내에서 이루어지는 바이너리 뉴럴 네트워크의 연산 방법.
According to claim 17,
The binary neural network calculation method is a binary neural network calculation method performed in a memory.
KR1020210118060A 2021-09-06 2021-09-06 Calculation method of binary neural network and binary neural network using the same KR102665462B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210118060A KR102665462B1 (en) 2021-09-06 2021-09-06 Calculation method of binary neural network and binary neural network using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210118060A KR102665462B1 (en) 2021-09-06 2021-09-06 Calculation method of binary neural network and binary neural network using the same

Publications (2)

Publication Number Publication Date
KR20230035719A true KR20230035719A (en) 2023-03-14
KR102665462B1 KR102665462B1 (en) 2024-05-09

Family

ID=85502948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210118060A KR102665462B1 (en) 2021-09-06 2021-09-06 Calculation method of binary neural network and binary neural network using the same

Country Status (1)

Country Link
KR (1) KR102665462B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210029876A (en) * 2019-09-06 2021-03-17 포항공과대학교 산학협력단 Electronic device for configuring neural network
US20210134343A1 (en) * 2019-11-04 2021-05-06 Qualcomm Incorporated Static random-access memory (sram) compute in-memory integration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210029876A (en) * 2019-09-06 2021-03-17 포항공과대학교 산학협력단 Electronic device for configuring neural network
US20210134343A1 (en) * 2019-11-04 2021-05-06 Qualcomm Incorporated Static random-access memory (sram) compute in-memory integration

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
H. Kim 등. "In-Memory Batch-Normalization for Resistive Memory based Binary Neural Network Hardware". ASPDAC'19: Proceedings of the 24th Asia and South Pacific Design Automation Conference* *
R. Andri 등. "ChewBaccaNN: A Flexible 223 TOPS/W BNN Accelerator". arXiv:2005.07137v3* *
R. Liu 등. "Parallelizing SRAM Arrays with Customized Bit-Cell for Binary Neural Networks". 55th ACM/ESDA/IEEE Design Automation Conference *

Also Published As

Publication number Publication date
KR102665462B1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
Chen et al. A novel online incremental and decremental learning algorithm based on variable support vector machine
Cao et al. Exponential stability of high-order bidirectional associative memory neural networks with time delays
EP3979143A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
US11853594B2 (en) Neural network computing chip and computing method
US20220269483A1 (en) Compute in memory accumulator
CN109886389A (en) A kind of novel two-way LSTM neural network construction method based on Highway and DC
Xu et al. BERT gated multi-window attention network for relation extraction
WO2022197615A1 (en) Techniques for adaptive generation and visualization of quantized neural networks
CN114999544A (en) Memory computing circuit based on SRAM
CN117217318B (en) Text generation method and device based on Transformer network model
KR102665462B1 (en) Calculation method of binary neural network and binary neural network using the same
US11775856B2 (en) Quantum logic circuit with weights and methods for use therewith
CN117035045A (en) Model parameter updating method, device, equipment, storage medium and program product
US20230047364A1 (en) Partial sum management and reconfigurable systolic flow architectures for in-memory computation
WO2023015105A1 (en) Folding column adder architecture for digital compute in memory
US20210182685A1 (en) Neural network batch normalization optimization method and apparatus
Melkman et al. On the compressive power of Boolean threshold autoencoders
US20200250524A1 (en) System and method for reducing computational complexity of neural network
Bao et al. Associative memory synthesis based on region attractive recurrent neural networks
Cheng et al. Text sentiment classification based on BP neural network
Leoshchenko et al. Implementation of Probabilistic Data Structures in the Processes of Neuroevolutionary Synthesis.
Hua et al. Quantize YOLOv3-tiny For 5-bit Hardware
Liao et al. An efficient approach of test-cost-sensitive attribute reduction for numerical data
NF et al. Straight Forward Constructive Deep Learning Neural Network (Sfc-Dlnn) Algorithm
US11657864B1 (en) In-memory computing apparatus and computing method having a memory array includes a shifted weight storage, shift information storage and shift restoration circuit to restore a weigh shifted amount of shifted sum-of-products to generate multiple restored sum-of-products

Legal Events

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