KR20200068560A - Neuromorphic arithmetic device and operating method thereof - Google Patents

Neuromorphic arithmetic device and operating method thereof Download PDF

Info

Publication number
KR20200068560A
KR20200068560A KR1020190103396A KR20190103396A KR20200068560A KR 20200068560 A KR20200068560 A KR 20200068560A KR 1020190103396 A KR1020190103396 A KR 1020190103396A KR 20190103396 A KR20190103396 A KR 20190103396A KR 20200068560 A KR20200068560 A KR 20200068560A
Authority
KR
South Korea
Prior art keywords
offset
data
offset data
computing device
capacitor
Prior art date
Application number
KR1020190103396A
Other languages
Korean (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 US16/695,509 priority Critical patent/US11204740B2/en
Publication of KR20200068560A publication Critical patent/KR20200068560A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

A neuromorphic computing device according to the present invention can perform a multiply-accumulate (MAC) operation using a multiplier and an accumulator. The neuromorphic computing device comprises: an offset accumulator receiving a plurality of offset data measured a plurality of number of times and accumulating the plurality of offset data; a bit extractor for obtaining average offset data by extracting at least one first bit from the accumulated offset data; and a cumulative synapse array that accumulates a plurality of multiplication values generated by a multiplier and outputs a cumulative result of a plurality of multiplication values corrected according to the average offset data.

Description

뉴로모픽 연산 장치 및 그것의 동작 방법{NEUROMORPHIC ARITHMETIC DEVICE AND OPERATING METHOD THEREOF}Neuromorphic computing device and method of operation thereof NEOUROMORPHIC ARITHMETIC DEVICE AND OPERATING METHOD THEREOF

본 발명은 뉴로모픽 연산 장치에 관한 것으로, 더욱 상세하게는 오프셋 보정을 수행할 수 있는 뉴로모픽 연산 장치 및 그것의 동작 방법에 관한 것이다.The present invention relates to a neuromorphic computing device, and more particularly, to a neuromorphic computing device capable of performing offset correction and a method of operating the same.

뉴로모픽(neuromorphic) 연산 장치는 인간의 두뇌를 모방하여 데이터를 처리하는 장치이다. 두뇌는 뉴런들 사이의 시냅스를 통해 하나의 뉴런으로부터 다른 뉴런으로 신호를 전달할 수 있다. 두뇌는 시냅스의 연결 강도를 조절하여 뉴런으로부터 다른 뉴런으로 전달되는 신호의 세기를 조절할 수 있다. 시냅스의 연결 강도가 조절됨으로써 정보의 학습 및 추론이 이루어질 수 있다. 뉴로모픽 연산 장치는 뉴런들 사이의 신호 전달 방식에 기초하여 데이터를 처리할 수 있다. 뉴럴 프로세싱(neural processing)은 이와 같은 신호 처리 방식을 이용하여 데이터를 처리하는 것을 일컫는다.A neuromorphic computing device is a device that processes data by imitating the human brain. The brain can transmit signals from one neuron to another through synapses between neurons. The brain can control the strength of the synapse's connection, thereby controlling the strength of the signal from one neuron to another. By adjusting the connection strength of synapses, learning and reasoning of information can be achieved. The neuromorphic computing device may process data based on a signal transmission method between neurons. Neural processing refers to processing data using such a signal processing method.

뉴로모픽 연산 장치는 방대한 연산을 필요로 하는 뉴럴 프로세싱을 위해, 저전력 및 저면적의 아날로그 MAC(multiplier-accumulators)으로 구현될 수 있다. 아날로그 MAC은 복수의 디지털 입력 신호들을 아날로그 신호들로 변환하고, 변환된 아날로그 신호들을 합하여 디지털 신호로 변환하는 방식을 사용한다. 아날로그 MAC은 정확도를 높이기 위해 입력 데이터를 1-비트씩 곱하고, 1-비트의 곱셈 결과들을 기반으로 MAC 연산을 수행할 수 있다. 이러한 MAC 연산을 기반으로 뉴로모픽 연산 장치가 동작하는 경우, 오프셋 에러에 따라 뉴럴 프로세싱의 신뢰성 및 인식률이 저하될 수 있다.The neuromorphic computing device can be implemented with low power and low area analog multiplier-accumulators (MAC) for neural processing that requires extensive computation. The analog MAC uses a method of converting a plurality of digital input signals into analog signals, and converting the converted analog signals into a digital signal. Analog MAC can multiply the input data by 1-bit increments to improve accuracy, and perform MAC operations based on 1-bit multiplication results. When the neuromorphic computing device is operated based on the MAC operation, reliability and recognition rate of neural processing may be reduced according to an offset error.

본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 오프셋 보정을 수행할 수 있는 뉴로모픽 연산 장치 및 그것의 동작 방법을 제공할 수 있다.The present invention is to solve the above-described technical problems, the present invention can provide a neuromorphic computing device capable of performing offset correction and its operation method.

본 발명에 따른 뉴로모픽 연산 장치는, 곱셈기 및 누적기를 이용하여 MAC(multiply-accumulate) 연산을 수행할 수 있다. 뉴로모픽 연산 장치는, 복수의 횟수들만큼 측정된 복수의 오프셋 데이터를 수신하고 그리고 복수의 오프셋 데이터를 누적하는 오프셋 누적기, 누적된 오프셋 데이터로부터 적어도 하나의 제 1 비트를 추출함으로써 평균 오프셋 데이터를 획득하는 비트 추출기, 및 곱셈기에 의해 생성된 복수의 곱셈 값들을 누적하고 그리고 평균 오프셋 데이터에 따라 보정된 복수의 곱셈 값들의 누적 결과를 출력하는 누적 시냅스 어레이를 포함할 수 있다.The neuromorphic computing device according to the present invention may perform a multiply-accumulate (MAC) operation using a multiplier and an accumulator. The neuromorphic computing device receives the plurality of offset data measured by a plurality of times and extracts at least one first bit from the offset accumulator accumulating the plurality of offset data, and the accumulated offset data, thereby obtaining the average offset data. And a cumulative synapse array that accumulates a plurality of multiply values generated by the bit extractor and multipliers and outputs a cumulative result of the plurality of multiply corrected values according to the average offset data.

본 발명에 따른 뉴로모픽 연산 장치의 동작 방법은 복수의 횟수들만큼 복수의 오프셋 데이터를 측정하는 단계, 복수의 오프셋 데이터를 누적하는 단계, 누적된 오프셋 데이터로부터 적어도 하나의 제 1 비트를 추출함으로써 평균 오프셋 데이터를 획득하는 단계, 복수의 특징 데이터 및 복수의 가중 데이터 간의 복수의 곱셈 값들을 계산하는 단계, 복수의 곱셈 값들을 누적하는 단계, 및 평균 오프셋 데이터에 따라 복수의 곱셈 값들의 누적 결과를 보정하는 단계를 포함할 수 있다.The operation method of the neuromorphic computing device according to the present invention includes measuring a plurality of offset data by a plurality of times, accumulating a plurality of offset data, and extracting at least one first bit from the accumulated offset data. Obtaining average offset data, calculating a plurality of multiplication values between a plurality of feature data and a plurality of weighted data, accumulating a plurality of multiplication values, and accumulating results of a plurality of multiplication values according to the average offset data And correcting.

도 1은 본 발명의 일 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다.
도 2는 도 1의 뉴로모픽 연산 장치의 오프셋 누적기와 비트 추출기의 동작 방법을 설명하기 위한 개념도이다.
도 3은 본 발명의 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다.
도 4는 도 3의 뉴로포믹 연산 장치를 좀 더 구체적으로 도시하는 회로도이다.
도 5는 본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다.
도 6은 본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다.
도 7은 오프셋들에 따른 도 6의 뉴로모픽 연산 장치의 입력과 출력 간의 관계를 도시하는 그래프들이다.
도 8은 본 발명의 일 실시 예에 따라 뉴로모픽 연산 장치의 동작 방법을 예시적으로 나타내는 순서도이다.
1 is a block diagram exemplarily illustrating a neuromorphic computing device according to an embodiment of the present invention.
FIG. 2 is a conceptual diagram illustrating an operation method of an offset accumulator and a bit extractor of the neuromorphic computing device of FIG. 1.
3 is a block diagram exemplarily illustrating a neuromorphic computing device according to another embodiment of the present invention.
4 is a circuit diagram illustrating the neuroformal computing device of FIG. 3 in more detail.
5 is a block diagram exemplarily showing a neuromorphic computing device according to another embodiment of the present invention.
6 is a block diagram exemplarily illustrating a neuromorphic computing device according to another embodiment of the present invention.
7 is graphs showing a relationship between an input and an output of the neuromorphic computing device of FIG. 6 according to offsets.
8 is a flowchart illustrating an operation method of a neuromorphic computing device according to an embodiment of the present invention.

아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.In the following, embodiments of the present invention will be described clearly and in detail so that those skilled in the art of the present invention can easily implement the present invention.

도 1은 본 발명의 일 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다. 뉴로모픽(neuromorphic) 연산 장치(100)는 MAC(multiply-accumulate) 연산의 덧셈 또는 누적을 수행할 수 있다. 예를 들어, 뉴로모픽 연산 장치(100)는 누적기로 지칭될 수 있다. 뉴로모픽 연산 장치(100)는 누적 연산 도중에 발생되는 오프셋(또는 오프셋 에러, 오프셋 데이터, 오프셋 에러 데이터 등)을 측정하거나 계산할 수 있고, 측정된 오프셋에 기초하여 오프셋 보정을 통해 계산된 연산 결과를 출력할 수 있다. 뉴로모픽 연산 장치(100)는 복수의 동작 모드들에서 동작할 수 있다. 예를 들어, 복수의 동작 모드들은 오프셋의 보정을 위한 오프셋을 계산하기 위한 오프셋 모드, 및 오프셋 보정을 통해 계산된 연산 결과를 출력하기 위한 연산 모드를 포함할 수 있다. 뉴로모픽 연산 장치(100)의 동작 모드들은 후술되는 오프셋 제어기(150)에 따라 제어될 수 있다.1 is a block diagram exemplarily illustrating a neuromorphic computing device according to an embodiment of the present invention. The neuromorphic computing device 100 may perform addition or accumulation of a multiply-accumulate (MAC) operation. For example, the neuromorphic computing device 100 may be referred to as an accumulator. The neuromorphic computing device 100 may measure or calculate an offset (or offset error, offset data, offset error data, etc.) generated during a cumulative operation, and calculate the calculation result calculated through offset correction based on the measured offset. Can print The neuromorphic computing device 100 may operate in a plurality of operation modes. For example, the plurality of operation modes may include an offset mode for calculating an offset for correction of an offset, and a calculation mode for outputting a calculation result calculated through offset correction. The operation modes of the neuromorphic computing device 100 may be controlled according to the offset controller 150 described below.

뉴로모픽 연산 장치(100)는 다른 장치(예컨대, 도 5의 곱셈기(1100) 또는 도 6의 전처리기(2100))로부터 곱셈 값들(DI<0:r>; r은 0 이상의 정수), 오프셋 입력 값들(ZI<0:r>), 및 오프셋 비활성 데이터(ZERO OFF; 제 2 멀티플렉서(170)와 함께 후술됨)를 수신할 수 있다. 곱셈 값들(DI<0:r>) 및 오프셋 입력 값들(ZI<0:r>)은 전류, 전압 등과 같은 아날로그 신호일 수 있고, 그리고 오프셋 비활성 데이터(ZERO OFF)는 디지털 신호일 수 있다. 예를 들어, 곱셈 값들(DI<0:r>) 및 오프셋 입력 값들(ZI<0:r>)은 각각 r+1개 비트들일 수 있다. 뉴로모픽 연산 장치(100)는 연산 모드에서 곱셈 값들(DI<0:r>)을 동시에 수신할 수 있다. 곱셈 값들(DI<0:r>)은 MAC 연산의 곱셈으로부터 계산된 결과들일 수 있다. MAC 연산의 곱셈에 의한 곱셈 값들(DI<0:r>)의 계산은 도 5에서 좀 더 구체적으로 설명될 것이다. 뉴로모픽 연산 장치(100)는 오프셋 모드에서 오프셋 입력 값들(ZI<0:r>)을 수신할 수 있다. 뉴로모픽 연산 장치(100)는 오프셋 입력 값들(ZI<0:r>)로부터 오프셋을 측정하거나 계산할 수 있다. 예를 들어, 오프셋 입력 값들(ZI<0:r>)은 모두 0 값들일 수 있다.The neuromorphic computing device 100 offsets multiplication values (DI<0:r>; r is an integer greater than or equal to 0) from another device (e.g., the multiplier 1100 of FIG. 5 or the preprocessor 2100 of FIG. 6). The input values ZI<0:r> and offset inactive data (ZERO OFF; described later with the second multiplexer 170) may be received. The multiplication values DI<0:r> and the offset input values ZI<0:r> may be analog signals such as current and voltage, and the offset inactive data ZERO OFF may be digital signals. For example, multiplication values (DI<0:r>) and offset input values (ZI<0:r>) may each be r+1 bits. The neuromorphic computing device 100 may simultaneously receive multiplication values DI<0:r> in arithmetic mode. The multiplication values (DI<0:r>) may be results calculated from multiplication of a MAC operation. The calculation of multiplication values (DI<0:r>) by multiplication of MAC operation will be described in more detail in FIG. 5. The neuromorphic computing device 100 may receive offset input values ZI<0:r> in the offset mode. The neuromorphic computing device 100 may measure or calculate an offset from the offset input values ZI<0:r>. For example, the offset input values ZI<0:r> may all be zero values.

뉴로모픽 연산 장치(100)는 누적 시냅스 어레이(110), 아날로그 디지털 변환기(120), 오프셋 누적기(130), 비트 추출기(140), 오프셋 제어기(150), 제 1 멀티플렉서(160), 및 제 2 멀티플렉서(170)를 포함할 수 있다. 누적 시냅스 어레이(110)는 제 1 내지 제 R 누적 연산 소자들(111~11R; R=r+1)을 포함할 수 있다. 제 1 내지 제 R 누적 연산 소자들(111~11R)은 연산 방식들 및 연산 값들의 저장 방식들을 고려하여 커패시터, 저항, 전류원 등 다양한 아날로그 소자들을 포함할 수 있다. 예를 들어, 제 1 내지 제 R 누적 연산 소자들(111~11R)은 각각 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)을 포함할 수 있다. 제 1 내지 제 R 누적 연산 소자들(111~11R) 및 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 개수들은 곱셈 값들(DI<0:r>) 및 오프셋 입력 값들(ZI<0:r>)의 비트들의 개수들(r+1)과 서로 동일할 수 있다. 일 예에서, 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 커패시턴스 값들은 연산 방식들 및 연산 값들의 저장 방식들에 따라 서로 상이할 수 있다. The neuromorphic computing device 100 includes a cumulative synapse array 110, an analog-to-digital converter 120, an offset accumulator 130, a bit extractor 140, an offset controller 150, a first multiplexer 160, and A second multiplexer 170 may be included. The cumulative synapse array 110 may include first to R cumulative computing elements 111 to 11R (R=r+1). The first to R cumulative computing elements 111 to 11R may include various analog elements such as a capacitor, a resistor, and a current source in consideration of calculation methods and storage methods of calculation values. For example, the first to R cumulative computing elements 111 to 11R may include first to R capacitors SC<0> to SC<r>, respectively. The numbers of the first to R cumulative computing elements 111 to 11R and the first to R capacitors SC<0> to SC<r> are multiplication values (DI<0:r>) and offset input values. The number of bits of (ZI<0:r>) (r+1) may be the same as each other. In one example, the capacitance values of the first to Rth capacitors SC<0> to SC<r> may be different from each other according to calculation methods and storage methods of calculation values.

누적 시냅스 어레이(110)는, 연산 모드에서 곱셈 값들(DI<0:r>)을 수신할 수 있고 그리고 오프셋 모드에서 오프셋 입력 값들(ZI<0:r>)을 수신할 수 있다. 제 1 내지 제 R 누적 연산 소자들(111~11R)은 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)을 비트 단위로 저장할 수 있다. 예를 들어, 제 1 내지 제 R 누적 연산 소자들(111~11R)의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)은 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)의 비트들에 대응하는 전압들에 의해 전하를 저장하는 방식에 따라 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)을 비트 단위로 저장할 수 있다. 즉, 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)은 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)의 비트들에 대응하는 전압들에 의해 충전될 수 있다.The cumulative synapse array 110 may receive multiplication values (DI<0:r>) in arithmetic mode and receive offset input values (ZI<0:r>) in offset mode. The first to R cumulative computing elements 111 to 11R may store multiplication values DI<0:r> or offset input values ZI<0:r> in bit units. For example, the first to Rth capacitors SC<0> to SC<r> of the first to Rth cumulative computing elements 111 to 11R are multiplication values (DI<0:r>) or offset. The multiplication values (DI<0:r>) or offset input values (ZI<0:r>), depending on how the charge is stored by the voltages corresponding to the bits of the input values (ZI<0:r>). Can be stored in bits. That is, the first to R capacitors SC<0> to SC<r> are voltages corresponding to bits of the multiplication values DI<0:r> or offset input values ZI<0:r>. It can be charged by the field.

제 1 내지 제 R 누적 연산 소자들(111~11R)은 비트 단위로 저장된 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)을 동시에 더하거나 누적시킬 수 있다. 예를 들어, 제 1 내지 제 R 누적 연산 소자들(111~11R)의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)이 서로 병렬로 연결되면, 비트 단위로 저장된 곱셈 값들(DI<0:r>) 또는 오프셋 입력 값들(ZI<0:r>)은 누적될 수 있다. 누적 시냅스 어레이(110)는 누적된 곱셈 값들(DI<0:r>) 또는 누적된 오프셋 입력 값들(ZI<0:r>)을 출력할 수 있다. 누적된 곱셈 값들(DI<0:r>) 및 누적된 오프셋 입력 값들(ZI<0:r>)은 누적 연산 값들(ACD)로 지칭될 수 있다. 누적 시냅스 어레이(110)는 전류, 전압 등과 같은 아날로그 신호로서 누적 연산 값들(ACD)을 출력할 수 있다. 연산 모드에서, 제 1 내지 제 R 누적 연산 소자들(111~11R)은 평균 오프셋 데이터(ACC_TR)에 따른 오프셋 보정을 통해 비트 단위로 저장된 곱셈 값들(DI<0:r>)을 더하거나 누적시킬 수 있다. 구체적으로, 제 1 내지 제 R 누적 연산 소자들(111~11R)은, 오프셋 보정을 위해 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)에 저장된 전하들 또는 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 전압들을 평균 오프셋 데이터(ACC_TR)에 따라 조절함으로써, 비트 단위로 저장된 곱셈 값들(DI<0:r>)을 더하거나 누적시킬 수 있다.The first to R cumulative computing elements 111 to 11R may simultaneously add or accumulate multiplying values DI<0:r> or offset input values ZI<0:r> stored in bits. For example, when the first to Rth capacitors SC<0> to SC<r> of the first to Rth cumulative computing elements 111 to 11R are connected in parallel with each other, multiplication values stored in bits are stored. (DI<0:r>) or offset input values ZI<0:r> may be accumulated. The accumulated synapse array 110 may output accumulated multiplication values DI<0:r> or accumulated offset input values ZI<0:r>. The accumulated multiplication values DI<0:r> and the accumulated offset input values ZI<0:r> may be referred to as cumulative operation values ACD. The accumulated synapse array 110 may output accumulated calculation values ACD as an analog signal such as current and voltage. In arithmetic mode, the first to Rth cumulative arithmetic elements 111 to 11R may add or accumulate multiplication values DI<0:r> stored in bits through offset correction according to the average offset data ACC_TR. have. Specifically, the first to Rth cumulative computing elements 111 to 11R may include charges stored in the first to Rth capacitors SC<0> to SC<r> for offset correction, or first to first By adjusting the voltages of the R capacitors SC<0> to SC<r> according to the average offset data ACC_TR, multiplication values DI<0:r> stored in bits can be added or accumulated.

아날로그 디지털 변환기(120)는 누적 시냅스 어레이(110)로부터 누적 연산 값들(ACD)을 수신할 수 있다. 아날로그 디지털 변환기(120)는 누적 연산 값들(ACD)을 아날로그 신호에서 디지털 신호로 변환할 수 있다. 아날로그 디지털 변환기(120)는 디지털로 변환된 누적 연산 값들을 출력할 수 있고, 디지털로 변환된 누적 연산 값들은 출력 데이터(DO)로 지칭될 수 있다. 구체적으로, 오프셋 모드에서 오프셋 입력 값들(ZI<0:r>)에 기초하여 생성된 출력 데이터(DO)는 오프셋 데이터로 지칭될 수 있다. 오프셋 데이터는 도 2에서 좀 더 구체적으로 설명될 것이다.The analog-to-digital converter 120 may receive cumulative computational values ACD from the cumulative synapse array 110. The analog-to-digital converter 120 may convert cumulative calculation values ACD from an analog signal to a digital signal. The analog-to-digital converter 120 may output digitally accumulated cumulative calculation values, and the digitally converted cumulative calculation values may be referred to as output data DO. Specifically, the output data DO generated based on the offset input values ZI<0:r> in the offset mode may be referred to as offset data. The offset data will be described in more detail in FIG. 2.

오프셋 모드에서, 오프셋 누적기(130)는 오프셋 데이터인 출력 데이터(DO)를 수신할 수 있다. 오프셋 모드에서, 뉴로모픽 연산 장치(100)는 사전에 결정된 횟수들만큼 오프셋들을 계산하거나 측정할 수 있고, 그리고 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 오프셋 데이터를 수신할 수 있다. 예를 들어, 사전에 결정된 횟수들은

Figure pat00001
(k는 1 이상의 정수)일 수 있다. 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 획득된 오프셋 데이터에 기초하여 오프셋 누적 데이터(ACC)를 생성할 수 있다. 예를 들어, 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성할 수 있다. 오프셋 누적기(130)는 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수 있다. 일 예에서, 오프셋 누적기(130)는, 오프셋 모드에서 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성하고, 그리고 연산 모드에서 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수 있다. 또는, 다른 예에서, 오프셋 누적기(130)는, 오프셋 모드에서 적어도 하나의 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성하고, 그리고 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수도 있다.In the offset mode, the offset accumulator 130 may receive offset data output data DO. In the offset mode, the neuromorphic computing device 100 may calculate or measure offsets by a predetermined number of times, and the offset accumulator 130 may receive offset data by a predetermined number of times. For example, the predetermined number of times
Figure pat00001
(k is an integer of 1 or more). The offset accumulator 130 may generate offset accumulation data (ACC) based on the offset data acquired by a predetermined number of times. For example, the offset accumulator 130 may generate accumulated data (ACC) by adding or accumulating offset data acquired by a predetermined number of times. The offset accumulator 130 may provide the offset accumulator data (ACC) to the bit extractor 140. In one example, the offset accumulator 130 generates cumulative data (ACC) by adding or accumulating offset data obtained a predetermined number of times in the offset mode, and accumulating the offset in the bit extractor 140 in the arithmetic mode. Data (ACC) can be provided. Or, in another example, the offset accumulator 130 generates accumulative data (ACC) by adding or accumulating offset data obtained in at least one predetermined number of times in the offset mode, and the bit extractor 140 Offset accumulation data (ACC) may be provided.

비트 추출기(140)는 오프셋 누적 데이터(ACC)에 기초하여 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 예를 들어, 비트 추출기(140)는 오프셋 누적 데이터(ACC)에 포함된 복수의 비트들 중 적어도 하나의 비트를 추출하거나 버림(truncate)으로써 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 비트 추출기(140)는, 오프셋 모드 또는 동작 모드에서, 평균 오프셋 데이터(ACC_TR)를 제 1 멀티플렉서(160)에 제공할 수 있다. 비트 추출기(140)는 버림기(truncator)로 지칭될 수도 있다. 오프셋 누적기(130) 및 비트 추출기(140)의 동작 방법은 도 2에서 좀 더 구체적으로 설명될 것이다.The bit extractor 140 may generate average offset data ACC_TR based on the offset accumulation data ACC. For example, the bit extractor 140 may generate average offset data ACC_TR by extracting or truncating at least one bit among a plurality of bits included in the offset accumulation data ACC. The bit extractor 140 may provide the average multiplexer data ACC_TR to the first multiplexer 160 in the offset mode or the operation mode. The bit extractor 140 may also be referred to as a truncator. The operation method of the offset accumulator 130 and the bit extractor 140 will be described in more detail in FIG. 2.

오프셋 제어기(150)는 제 1 멀티플렉서(160) 및 제 2 멀티플렉서(170)를 제어할 수 있다. 오프셋 제어기(150)는 제 1 멀티플렉서(160) 및 제 2 멀티플렉서(170)에 제어 신호(OFFCAL)를 제공할 수 있다.The offset controller 150 may control the first multiplexer 160 and the second multiplexer 170. The offset controller 150 may provide a control signal OFFCAL to the first multiplexer 160 and the second multiplexer 170.

제 1 멀티플렉서(160)는 제 1 멀티플렉서(160)는 곱셈 값들(DI<0:r>) 및 오프셋 입력 값들(ZI<0:r>)을 수신할 수 있다. 제 1 멀티플렉서(160)는 오프셋 제어기(150)에 따라 곱셈 값들(DI<0:r>) 및 오프셋 입력 값들(ZI<0:r>)을 선택적으로 출력할 수 있다. 오프셋 제어기(150)는, 오프셋 모드에서 제 1 멀티플렉서(160)가 누적 시냅스 어레이(110)에 오프셋 입력 값들(ZI<0:r>)을 제공하도록 제어할 수 있고, 그리고 연산 모드에서 제 1 멀티플렉서(160)가 누적 시냅스 어레이(110)에 곱셈 값들(DI<0:r>)을 제공하도록 제어할 수 있다. 예를 들어, 제어 신호(OFFCAL)가 오프셋 모드 활성화를 위한 로직 하이('1')에 대응하는 경우, 제 1 멀티플렉서(160)는 누적 시냅스 어레이(110)에 오프셋 입력 값들(ZI<0:r>)을 제공하고, 그리고 제어 신호(OFFCAL)가 연산 모드 활성화를 위한 로직 로우('0')에 대응하는 경우, 제 1 멀티플렉서(160)는 누적 시냅스 어레이(110)에 곱셈 값들(DI<0:r>)을 제공할 수 있다.The first multiplexer 160 may receive the multiplier values DI<0:r> and the offset input values ZI<0:r>. The first multiplexer 160 may selectively output multiplication values DI<0:r> and offset input values ZI<0:r> according to the offset controller 150. The offset controller 150 may control the first multiplexer 160 to provide offset input values ZI<0:r> to the cumulative synapse array 110 in the offset mode, and the first multiplexer in the computational mode. It is possible to control the 160 to provide multiplication values DI<0:r> to the cumulative synapse array 110. For example, when the control signal OFFCAL corresponds to a logic high ('1') for activating the offset mode, the first multiplexer 160 outputs the offset input values ZI<0:r to the cumulative synapse array 110. >), and when the control signal OFFCAL corresponds to a logic low ('0') for activating a computational mode, the first multiplexer 160 multiplies the cumulative synapse array 110 with multiplication values (DI<0). :r>).

제 2 멀티플렉서(170)는 평균 오프셋 데이터(ACC_TR) 및 오프셋 비활성 데이터(ZERO OFF)를 수신할 수 있다. 제 2 멀티플렉서(170)는 오프셋 제어기(150)에 따라 평균 오프셋 데이터(ACC_TR) 및 오프셋 비활성 데이터(ZERO OFF)를 선택적으로 출력할 수 있다. 오프셋 제어기(150)는, 오프셋 모드에서 제 2 멀티플렉서(170)가 누적 시냅스 어레이(110)에 오프셋 비활성 데이터(ZERO OFF)를 제공하도록 제어할 수 있고, 그리고 연산 모드에서 제 2 멀티플렉서(170)가 누적 시냅스 어레이(110)에 평균 오프셋 데이터(ACC_TR)를 제공하도록 제어할 수 있다. 예를 들어, 제어 신호(OFFCAL)가 오프셋 모드 활성화를 위한 로직 하이('1')에 대응하는 경우, 제 2 멀티플렉서(170)는 누적 시냅스 어레이(110)에 오프셋 비활성 데이터(ZERO OFF)를 제공하고, 그리고 제어 신호(OFFCAL)가 연산 모드 활성화를 위한 로직 로우('0')에 대응하는 경우, 제 2 멀티플렉서(170)는 누적 시냅스 어레이(110)에 평균 오프셋 데이터(ACC_TR)를 제공할 수 있다.The second multiplexer 170 may receive the average offset data ACC_TR and the offset inactive data ZERO OFF. The second multiplexer 170 may selectively output the average offset data ACC_TR and the offset inactive data ZERO OFF according to the offset controller 150. The offset controller 150 can control the second multiplexer 170 to provide offset inactive data (ZERO OFF) to the cumulative synapse array 110 in the offset mode, and the second multiplexer 170 in the computational mode. It may be controlled to provide the average offset data (ACC_TR) to the cumulative synapse array 110. For example, when the control signal OFFCAL corresponds to a logic high ('1') for activating the offset mode, the second multiplexer 170 provides offset inactive data (ZERO OFF) to the cumulative synapse array 110. And, if the control signal (OFFCAL) corresponds to the logic low ('0') for activating the operation mode, the second multiplexer 170 may provide the average offset data (ACC_TR) to the cumulative synapse array 110 have.

오프셋 모드에서, 뉴로모픽 연산 장치(100)는 오프셋 입력 값들(ZI<0:r>)에 기초하여 평균 오프셋 데이터(ACC_TR)를 계산할 수 있다. 연산 모드에서, 뉴로모픽 연산 장치(100)는 곱셈 값들(DI<0:r>)에 기초하여 누적 연산을 수행하되, 오프셋 모드에서 계산된 평균 오프셋 데이터(ACC_TR)를 이용하여 누적 연산 중에 발생되는 오프셋 에러를 보정할 수 있다. 구체적으로, 누적 시냅스 어레이(110)에 제공된 평균 오프셋 데이터(ACC_TR)에 따라 누적 시냅스 어레이(110) 내의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)에 저장된 전하들 또는 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 전압들을 조절함으로써 오프셋을 보정할 수 있다. 예를 들어, 누적 시냅스 어레이(110)에 제공된 평균 오프셋 데이터(ACC_TR)에 따른 전압들과 누적 시냅스 어레이(110) 내의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 전압들 간의 차를 계산함으로써 오프셋을 보정할 수 있다. 즉, 뉴로모픽 연산 장치(100)는, 댜앙한 아날로그 소자들을 포함하는 누적 시냅스 어레이(110)의 아날로그 연산 단계에서 오프셋 보정을 수행함으로써, MAC 연산 도중 발생하는 오프셋 에러를 효과적으로 제거할 수 있다. 일 실시 예에서, 오프셋 누적기(130) 및 비트 추출기(140)는 AND, OR, XOR, NOR, 래치(latch), 플립플롭(flip-flop) 등과 같은 논리소자들, 및 그것들의 조합으로 구현될 수 있고, 그리고 아날로그 디지털 변환기(120) 및 오프셋 제어기(150)는 전용 회로(예컨대, FPGA(Field Programmable Gate Arrays), ASICs(Application Specific Integrated Circuits) 등)를 포함하여 구현되거나, 또는 시스템 온 칩(SoC; System on Chip)로 구현될 수 있다.In the offset mode, the neuromorphic computing device 100 may calculate the average offset data ACC_TR based on the offset input values ZI<0:r>. In the operation mode, the neuromorphic operation device 100 performs a cumulative operation based on multiplication values (DI<0:r>), but occurs during the cumulative operation using the average offset data (ACC_TR) calculated in the offset mode. Offset error can be corrected. Specifically, electric charges or charges stored in the first to R capacitors SC<0> to SC<r> in the accumulated synapse array 110 according to the average offset data ACC_TR provided to the accumulated synapse array 110 The offset may be corrected by adjusting the voltages of the first to Rth capacitors SC<0> to SC<r>. For example, voltages according to the average offset data ACC_TR provided to the cumulative synapse array 110 and voltages of the first to Rth capacitors SC<0> to SC<r> in the cumulative synapse array 110. The offset can be corrected by calculating the difference between them. That is, the neuromorphic computing device 100 may effectively remove an offset error occurring during a MAC operation by performing offset correction in an analog operation step of the cumulative synaptic array 110 including various analog elements. In one embodiment, the offset accumulator 130 and the bit extractor 140 are implemented with logical elements such as AND, OR, XOR, NOR, latch, flip-flop, and combinations thereof. The analog-to-digital converter 120 and the offset controller 150 may be implemented including dedicated circuits (eg, Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), etc.), or system-on-chip. (SoC; System on Chip).

도 2는 도 1의 뉴로모픽 연산 장치의 오프셋 누적기와 비트 추출기의 동작 방법을 설명하기 위한 개념도이다. 도 2에서, 오프셋 모드에서 동작하는 뉴로모픽 연산 장치(100)는 오프셋들을 4회 측정한다고 가정된다. 따라서, 오프셋 모드에서 동작하는 뉴로모픽 연산 장치(100)의 아날로그 디지털 변환기(120)는 출력 데이터(DO)로서 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)를 출력할 수 있다. 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)는 각각 적어도 하나의 비트로 표현되는 이진 데이터일 수 있다. 도 2에서, 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)는 6비트들의 이진 데이터로 가정된다. 상술된 수치들은 단순히 예시적인 값들이다.FIG. 2 is a conceptual diagram illustrating an operation method of an offset accumulator and a bit extractor of the neuromorphic computing device of FIG. 1. In FIG. 2, it is assumed that the neuromorphic computing device 100 operating in the offset mode measures offsets four times. Accordingly, the analog-to-digital converter 120 of the neuromorphic computing device 100 operating in the offset mode may output first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th) as output data DO. . The first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th) may be binary data represented by at least one bit, respectively. In FIG. 2, the first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th) is assumed to be 6 bits of binary data. The above mentioned values are merely exemplary values.

오프셋 모드에서, 오프셋 누적기(130)는 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)를 수신할 수 있다. 오프셋 누적기(130)는 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)를 더하거나 누적함으로써 오프셋 누적 데이터(OFF_SUM)를 생성할 수 있다. 오프셋 누적 데이터(OFF_SUM)는 도 1의 오프셋 누적 데이터(ACC)와 동일할 수 있다. 오프셋 누적기(130)는 비트 추출기(140)에 오프셋 누적 데이터(OFF_SUM)를 제공할 수 있다. 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)가 6 비트들의 이진 데이터인 경우, 오프셋 누적 데이터(OFF_SUM)는 적어도 8 비트들의 이진 데이터일 수 있다. 도 2에서, 오프셋 누적 데이터(OFF_SUM)는 8비트들로 가정된다.In the offset mode, the offset accumulator 130 may receive the first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th). The offset accumulator 130 may generate offset accumulation data OFF_SUM by adding or accumulating the first to fourth offset data OFF_1st, OFF_2nd, OFF_3rd, and OFF_4th. The offset accumulation data OFF_SUM may be the same as the offset accumulation data ACC of FIG. 1. The offset accumulator 130 may provide the offset accumulator data OFF_SUM to the bit extractor 140. When the first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th) are 6 bits of binary data, the offset accumulated data (OFF_SUM) may be at least 8 bits of binary data. In FIG. 2, the offset accumulation data (OFF_SUM) is assumed to be 8 bits.

비트 추출기(140)는 오프셋 누적 데이터(OFF_SUM)에 포함된 비트들 중 적어도 하나의 비트를 추출하거나 버릴 수 있다. 비트 추출기(140)가 오프셋 누적 데이터(OFF_SUM)로부터 복수의 비트들을 추출하는 경우, 복수의 비트들은 연속할 수 있다. 도 2에서, 예를 들면, 비트 추출기(140)는, 오프셋 누적 데이터(OFF_SUM)의 상위 5비트들(OFF_AVE<5:0>; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서

Figure pat00002
을 지시하는 비트들)을 추출하거나, 또는 하위 2 비트들(OFF_p50, OFF_p25; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서
Figure pat00003
을 지시하는 비트들)을 제거(truncate)할 수 있다. 오프셋 누적 데이터(OFF_SUM)의 상위 5비트들은 오프셋 평균 비트들(OFF_AVE<5:0>)로 지칭될 수 있다. 오프셋 누적 데이터(OFF_SUM)의 하위 2비트들은 각각 제 1 오프셋 소수 비트(OFF_p50; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서
Figure pat00004
을 지시하는 비트), 제 2 오프셋 소수 비트(OFF_p25; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서
Figure pat00005
을 지시하는 비트)로 지칭될 수 있다.The bit extractor 140 may extract or discard at least one bit among the bits included in the offset accumulation data (OFF_SUM). When the bit extractor 140 extracts a plurality of bits from the offset accumulation data (OFF_SUM), the plurality of bits may be continuous. In FIG. 2, for example, the bit extractor 140 may be configured in the upper 5 bits of the offset accumulation data OFF_SUM (OFF_AVE<5:0>; for example, in the offset accumulation data OFF_SUM).
Figure pat00002
Or bits in the lower 2 bits (OFF_p50, OFF_p25; for example, offset accumulation data (OFF_SUM)).
Figure pat00003
(Indicating bits) may be truncated. The upper 5 bits of the offset accumulation data (OFF_SUM) may be referred to as offset average bits (OFF_AVE<5:0>). The lower 2 bits of the offset accumulation data OFF_SUM are each of the first offset fractional bits OFF_p50; for example, in the offset accumulation data OFF_SUM
Figure pat00004
Bit), the second offset fractional bit (OFF_p25; for example, in the offset accumulated data (OFF_SUM))
Figure pat00005
It may be referred to as a bit).

추출된 오프셋 평균 비트들(OFF_AVE<5:0>)은 도 1의 평균 오프셋 데이터(ACC_TR)일 수 있다. 결국, 비트 추출기(140)는 오프셋 누적 데이터(OFF_SUM)의 오프셋 평균 비트들(OFF_AVE<5:0>)을 추출하거나, 또는 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)을 버림함으로써 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 뉴로모픽 연산 장치(100)가 오프셋들을 4와 같은

Figure pat00006
(k는 1 이상의 정수) 회만큼 계산하거나 측정하므로, 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)의 버림에 따라 제 1 내지 제 4 오프셋 데이터(OFF_1st, OFF_2nd, OFF_3rd, OFF_4th)의 평균(오프셋 평균 비트들(OFF_AVE<5:0>) 및 평균 오프셋 데이터(ACC_TR))을 획득할 수 있다.The extracted offset average bits (OFF_AVE<5:0>) may be average offset data ACC_TR of FIG. 1. As a result, the bit extractor 140 extracts the offset average bits OFF_AVE<5:0> of the offset accumulated data OFF_SUM, or discards the first and second offset fractional bits OFF_p50, OFF_p25. Offset data (ACC_TR) may be generated. The neuromorphic computing device 100 has offsets equal to 4
Figure pat00006
(k is an integer greater than or equal to 1) times, so the average of the first to fourth offset data (OFF_1st, OFF_2nd, OFF_3rd, OFF_4th) according to the discarding of the first and second offset fractional bits (OFF_p50, OFF_p25) (Offset average bits (OFF_AVE<5:0>) and average offset data (ACC_TR)) may be obtained.

제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)은 도 1의 평균 오프셋 데이터(ACC_TR)에 대한 상세한 정보를 포함할 수 있다. 예를 들어, 제 1 오프셋 소수 비트(OFF_p50)는 평균 오프셋 데이터(ACC_TR)의 십진법 상 0.5 단위에 대한 값을 포함할 수 있고, 그리고, 제 2 오프셋 소수 비트(OFF_p25)는 평균 오프셋 데이터(ACC_TR)의 십진법 상 0.25 단위에 대한 값을 포함할 수 있다. 비트 추출기(140)는, 연산 모드에서, 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)을 누적 시냅스 어레이(110)에 제공할 수 있고, 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)에 따라 누적 시냅스 어레이(110) 상에서 발생되는 평균 오프셋 데이터(ACC_TR)의 십진법 상 0.25, 0.5 단위에 대한 값들에 대해서도 오프셋이 보정될 수 있다. 따라서, 아날로그 MAC 연산 결과의 노이즈 마진(noise margin)이 현저히 높아질 수 있다.The first and second offset fractional bits OFF_p50 and OFF_p25 may include detailed information about the average offset data ACC_TR of FIG. 1. For example, the first offset fractional bit (OFF_p50) may include a value for 0.5 units in decimal of the average offset data (ACC_TR), and the second offset fractional bit (OFF_p25) may be the average offset data (ACC_TR). It can contain a value for 0.25 units in decimal. The bit extractor 140 may, in arithmetic mode, provide the first and second offset fractional bits (OFF_p50, OFF_p25) to the cumulative synapse array 110, and the first and second offset fractional bits (OFF_p50, OFF_p25), the offset may also be corrected for values for 0.25 and 0.5 units in the decimal system of the average offset data ACC_TR generated on the cumulative synaptic array 110. Therefore, the noise margin of the analog MAC operation result can be significantly increased.

도 3은 본 발명의 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다. 도 3은 도 1을 참조하여 설명될 것이다. 뉴로모픽 연산 장치(200)는 누적 시냅스 어레이(210), 아날로그 디지털 변환기(220), 오프셋 누적기(230), 비트 추출기(240), 오프셋 제어기(250), 제 1 멀티플렉서(260), 제 2 멀티플렉서(270), 및 보정 시냅스 어레이(280)를 포함할 수 있다. 누적 시냅스 어레이(210)는 제 1 내지 제 R 누적 연산 소자들(211~21r)을 포함할 수 있다. 도 2의 누적 시냅스 어레이(210), 아날로그 디지털 변환기(220), 오프셋 누적기(230), 비트 추출기(240), 오프셋 제어기(250), 제 1 멀티플렉서(260), 제 2 멀티플렉서(270), 및 제 1 내지 제 R 누적 연산 소자들(211~21r)은 각각 도 1의 누적 시냅스 어레이(110), 아날로그 디지털 변환기(120), 오프셋 누적기(130), 비트 추출기(140), 오프셋 제어기(150), 제 1 멀티플렉서(160), 제 2 멀티플렉서(170), 및 제 1 내지 제 R 누적 연산 소자들(111~11R)과 실질적으로 동일한 원리에 의해 구현될 수 있다.3 is a block diagram exemplarily illustrating a neuromorphic computing device according to another embodiment of the present invention. 3 will be described with reference to FIG. 1. The neuromorphic computing device 200 includes a cumulative synapse array 210, an analog-to-digital converter 220, an offset accumulator 230, a bit extractor 240, an offset controller 250, a first multiplexer 260, and 2 may include a multiplexer 270, and a corrected synapse array 280. The cumulative synapse array 210 may include first to R cumulative computing elements 211 to 21r. The cumulative synaptic array 210 of FIG. 2, the analog-to-digital converter 220, the offset accumulator 230, the bit extractor 240, the offset controller 250, the first multiplexer 260, the second multiplexer 270, And the first to R cumulative computing elements 211 to 21r are the cumulative synaptic array 110 of FIG. 1, the analog-to-digital converter 120, the offset accumulator 130, the bit extractor 140, and the offset controller ( 150), the first multiplexer 160, the second multiplexer 170, and the first to R cumulative computing elements 111 to 11R may be implemented by substantially the same principle.

보정 시냅스 어레이(280)는 제 2 멀티플렉서(270) 및 누적 시냅스 어레이(210) 사이에 연결될 수 있다. 보정 시냅스 어레이(280)는 제 1 내지 제 P 보정 연산 소자들(281~28P; p는 1 이상의 정수, P=p+1)을 포함할 수 있다. 제 1 내지 제 P 보정 연산 소자들(281~28P)은 연산 방식들 및 연산 값들의 저장 방식들을 고려하여 커패시터, 저항, 전류원 등 다양한 아날로그 소자들을 포함할 수 있다. 제 1 내지 제 P 보정 연산 소자들(281~28P)은 제 1 내지 제 R 누적 연산 소자들(211~21r)에 포함된 소자들과 동일한 종류의 소자들을 포함할 수 있다. 도 3에서, 제 1 내지 제 P 보정 연산 소자들(281~28P)이 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)을 포함할 수 있다. 보정 시냅스 어레이(280) 내의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)은 오프셋 커패시터들로 지칭될 수 있고, 그리고 누적 시냅스 어레이(210) 내의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)은 누적 커패시터들로 지칭될 수 있다. 제 1 내지 제 P 보정 연산 소자들(281~28P) 및 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)의 개수들은 평균 오프셋 데이터(ACC_TR)의 비트 수들과 서로 동일할 수 있다.The corrected synapse array 280 may be connected between the second multiplexer 270 and the cumulative synapse array 210. The correction synapse array 280 may include first to P correction operation elements 281 to 28P (p is an integer of 1 or more, P=p+1). The first to P-compensation operation elements 281 to 28P may include various analog elements such as capacitors, resistors, and current sources in consideration of operation methods and storage methods of operation values. The first to P correction operation elements 281 to 28P may include elements of the same type as the elements included in the first to R cumulative operation elements 211 to 21r. In FIG. 3, the first to Pth correction operation elements 281 to 28P may include first to Pth capacitors OC<0> to OC<p>. The first to P capacitors OC<0> to OC<p> in the corrected synapse array 280 may be referred to as offset capacitors, and the first to R capacitors in the accumulated synapse array 210 (SC<0> to SC<r>) may be referred to as cumulative capacitors. The numbers of the first to P correction operation elements 281 to 28P and the first to P capacitors OC<0> to OC<p> may be equal to the number of bits of the average offset data ACC_TR. have.

오프셋 제어기(250)는, 오프셋 모드에서, 제 2 멀티플렉서(270)가 보정 시냅스 어레이(280)에 오프셋 비활성 데이터(ZERO OFF)를 제공하도록 제어할 수 있고, 그리고 연산 모드에서 제 2 멀티플렉서(270)가 보정 시냅스 어레이(280)에 평균 오프셋 데이터(ACC_TR)를 제공하도록 제어할 수 있다. 예를 들어, 제어 신호(OFFCAL)가 오프셋 모드 활성화를 위한 로직 하이('1')에 대응하는 경우, 제 2 멀티플렉서(270)는 보정 시냅스 어레이(280)에 오프셋 비활성 데이터(ZERO OFF)를 제공하고, 그리고 제어 신호(OFFCAL)가 연산 모드 활성화를 위한 로직 로우('0')에 대응하는 경우, 제 2 멀티플렉서(270)는 보정 시냅스 어레이(280)에 평균 오프셋 데이터(ACC_TR)를 제공할 수 있다.The offset controller 250 can control the second multiplexer 270 to provide offset inactive data (ZERO OFF) to the corrected synapse array 280 in the offset mode, and the second multiplexer 270 in the computational mode. It can be controlled to provide the average offset data (ACC_TR) to the corrected synapse array 280. For example, when the control signal OFFCAL corresponds to a logic high ('1') for activating the offset mode, the second multiplexer 270 provides offset inactive data (ZERO OFF) to the correction synapse array 280. And, if the control signal (OFFCAL) corresponds to a logic low ('0') for activating the operation mode, the second multiplexer 270 can provide the average offset data (ACC_TR) to the correction synapse array 280 have.

보정 시냅스 어레이(280) 내의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)은 평균 오프셋 데이터(ACC_TR)를 비트 단위로 저장할 수 있다. 예를 들어, 제 1 내지 제 P 보정 연산 소자들(281~28P)의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)은 평균 오프셋 데이터(ACC_TR)의 비트들에 대응하는 전압들에 의해 전하를 저장하는 방식에 따라 평균 오프셋 데이터(ACC_TR)를 비트 단위로 저장할 수 있다.The first to P capacitors OC<0> to OC<p> in the correction synapse array 280 may store the average offset data ACC_TR in bits. For example, the first to P capacitors OC<0> to OC<p> of the first to P correction operation elements 281 to 28P correspond to bits of the average offset data ACC_TR. The average offset data ACC_TR may be stored in bits according to a method of storing electric charges by voltages.

제 1 내지 제 P 보정 연산 소자들(281~28P)은 비트 단위로 저장된 평균 오프셋 데이터(ACC_TR)를 더하거나 누적시킬 수 있다. 예를 들어, 제 1 내지 제 P 보정 연산 소자들(281~28P)의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)이 서로 병렬로 연결되면, 비트 단위로 저장된 평균 오프셋 데이터(ACC_TR)은 누적될 수 있다. 누적 시냅스 어레이(210)의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)에 저장된 누적 연산 값들(ACD)은 누적된 평균 오프셋 데이터(ACC_TR)에 따라 보정될 수 있다. 제 1 내지 제 R 누적 연산 소자들(211~21R)은, 오프셋 보정을 위해, 제 1 내지 제 P 보정 연산 소자들(281~28P) 내의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)의 전압들에 기초하여 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)에 저장된 전하들 또는 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 전압들을 누적할 수 있다.The first to P correction operation elements 281 to 28P may add or accumulate the average offset data ACC_TR stored in bits. For example, when the first to the P capacitors OC<0> to OC<p> of the first to P correction operation elements 281 to 28P are connected in parallel to each other, the average offset stored in bits Data ACC_TR may be accumulated. The accumulated operation values ACD stored in the first to R capacitors SC<0> to SC<r> of the accumulated synapse array 210 may be corrected according to the accumulated average offset data ACC_TR. The first to Rth cumulative computing elements 211 to 21R are first to Pth capacitors OC<0> to OC in the first to Pth corrective computing elements 281 to 28P for offset correction. Electric charges stored in the first to R capacitors SC<0> to SC<r> or the first to R capacitors SC<0> to SC<r> based on voltages of <p>) ) Can be accumulated.

도 4는 도 3의 뉴로포믹 연산 장치를 좀 더 구체적으로 도시하는 회로도이다. 도 4는 도 1 내지 도 3을 참조하여 설명될 것이다. 도 4에서, 설명의 편의를 위해 뉴로모픽 연산 장치(200)의 누적 시냅스 어레이(210) 및 보정 시냅스 어레이(280)만이 도시되었다. 도 4의 뉴로모픽 연산 장치(200)는 연산 모드에서 동작하는 것으로 가정된다. 따라서, 누적 시냅스 어레이(210)는 곱셈 값들(DI<0:r>)을 수신하고 그리고 보정 시냅스 어레이(280)는 평균 오프셋 데이터(OFF_AVE<p:0> 또는 ACC_TR) 및 도 2의 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)을 수신할 수 있다.4 is a circuit diagram illustrating the neuroformal computing device of FIG. 3 in more detail. 4 will be described with reference to FIGS. 1 to 3. In FIG. 4, only the cumulative synaptic array 210 and the corrected synaptic array 280 of the neuromorphic computing device 200 are shown for convenience of explanation. The neuromorphic computing device 200 of FIG. 4 is assumed to operate in a computational mode. Thus, the cumulative synapse array 210 receives multiplication values (DI<0:r>) and the corrected synapse array 280 is the average offset data (OFF_AVE<p:0> or ACC_TR) and the first and The second offset fractional bits (OFF_p50, OFF_p25) may be received.

누적 시냅스 어레이(210)는 제 1 내지 제 R 스위치들(SW00~SW0r) 및 보정 커패시터(AC)를 더 포함할 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r)의 일 단들은 각각 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)과 연결될 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r)의 타 단들은, 각각 곱셈 값들(DI<0:r>)을 수신하거나, 또는 보정 커패시터(AC)와 연결될 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r)은 제 2 멀티플렉서(270)를 경유하여 전송되는 오프셋 제어기(250)의 제어 신호에 따라 동작할 수 있다.The accumulated synapse array 210 may further include first to R switches SW00 to SW0r and a correction capacitor AC. One end of the first to R switches SW00 to SW0r may be connected to the first to R capacitors SC<0> to SC<r>, respectively. The other ends of the first to R switches SW00 to SW0r may receive multiplication values DI<0:r>, respectively, or be connected to a correction capacitor AC. The first to R switches SW00 to SW0r may operate according to the control signal of the offset controller 250 transmitted through the second multiplexer 270.

보정 시냅스 어레이(280)는 제 1 내지 제 P 스위치들(SW10~SW1p)을 더 포함할 수 있다. 제 1 내지 제 P 스위치들(SW10~SW1p)의 일 단들은 각각 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)과 연결될 수 있다. 제 1 내지 제 P 스위치들(SW10~SW1p)의 타 단들은 각각 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들을 수신하거나, 또는 보정 커패시터(AC)와 연결될 수 있다. 제 1 내지 제 P 스위치들(SW10~SW1p)은 제 2 멀티플렉서(270)를 경유하여 전송되는 오프셋 제어기(250)의 제어 신호에 따라 동작할 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r) 및 제 1 내지 제 P 스위치들(SW10~SW1p)은 트랜지스터들(예를 들어, NMOS, PMOS, 또는 NMOS와 PMOS의 조합)을 이용하여 구현될 수 있다.The correction synapse array 280 may further include first to P-th switches SW10 to SW1p. One end of the first to P switches SW10 to SW1p may be connected to the first to P capacitors OC<0> to OC<p>, respectively. The other ends of the first to P switches SW10 to SW1p may respectively receive bits of the average offset data OFF_AVE<p:0>, or may be connected to the correction capacitor AC. The first to P switches SW10 to SW1p may operate according to the control signal of the offset controller 250 transmitted through the second multiplexer 270. The first to R switches SW00 to SW0r and the first to P switches SW10 to SW1p may be implemented using transistors (eg, NMOS, PMOS, or a combination of NMOS and PMOS). have.

오프셋 제어기(250)의 제어에 따라 제 1 내지 제 R 스위치들(SW00~SW0r) 이 곱셈 값들(DI<0:r>)을 수신하는 경우, 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)은 각각 곱셈 값들(DI<0:r>)에 대응하는 전압들에 의해 충전될 수 있고 그리고 곱셈 값들(DI<0:r>)에 대응하는 전하들을 저장할 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r)은 곱셈 값들(DI<0:r>)을 동시에 수신할 수 있고, 그리고 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)은 동시에 충전될 수 있다.When the first to R switches SW00 to SW0r receive multiplication values DI<0:r> according to the control of the offset controller 250, the first to R capacitors SC<0> to SC<r>) may be charged by voltages corresponding to multiplication values DI<0:r>, respectively, and may store electric charges corresponding to multiplication values DI<0:r>. The first to R switches SW00 to SW0r can simultaneously receive multiplication values DI<0:r>, and the first to R capacitors SC<0> to SC<r> It can be charged at the same time.

오프셋 제어기(250)의 제어에 따라 제 1 내지 제 P 스위치들(SW10~SW1p)이 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들을 수신하는 경우, 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)은 각각 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들에 대응하는 전압들에 의해 충전될 수 있고 그리고 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들에 대응하는 전하들을 저장할 수 있다. 제 1 내지 제 P 스위치들(SW10~SW1p)은 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들을 동시에 수신할 수 있고, 그리고 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)은 동시에 충전될 수 있다.When the first to P switches SW10 to SW1p receive bits of the average offset data OFF_AVE<p:0> under the control of the offset controller 250, the first to P capacitors OC< 0> to OC<p>) may be charged by voltages corresponding to bits of the average offset data (OFF_AVE<p:0>), respectively, and bits of the average offset data (OFF_AVE<p:0>). The charges corresponding to can be stored. The first to P switches SW10 to SW1p may simultaneously receive bits of the average offset data OFF_AVE<p:0>, and the first to P capacitors OC<0> to OC<p >) can be charged simultaneously.

제 1 내지 제 R 커패시터들(SC<0>~SC<r>)과 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)이 충전된 후, 제 1 내지 제 R 스위치들(SW00~SW0r) 및 제 1 내지 제 P 스위치들(SW10~SW1p)은 오프셋 제어기(250)의 제어에 따라 보정 커패시터(AC)와 연결될 수 있다. 제 1 내지 제 R 스위치들(SW00~SW0r)은 동시에 보정 커패시터(AC)와 연결될 수 있고, 그리고 제 1 내지 제 P 스위치들(SW10~SW1p)은 동시에 보정 커패시터(AC)와 연결될 수 있다. 다만, 제 1 내지 제 R 스위치들(SW00~SW0r)이 보정 커패시터(AC)와 연결되는 시간과 제 1 내지 제 P 스위치들(SW10~SW1p)이 보정 커패시터(AC)와 연결되는 시간은 서로 동일하거나 상이할 수 있다.After the first to R capacitors SC<0> to SC<r> and the first to P capacitors OC<0> to OC<p> are charged, the first to R switches ( SW00 to SW0r) and the first to P-th switches SW10 to SW1p may be connected to the correction capacitor AC under the control of the offset controller 250. The first to R switches SW00 to SW0r may be simultaneously connected to the correction capacitor AC, and the first to P switches SW10 to SW1p may be connected to the correction capacitor AC at the same time. However, the time when the first to R switches SW00 to SW0r are connected to the correction capacitor AC and the time to which the first to P switches SW10 to SW1p are connected to the correction capacitor AC are the same. Or it may be different.

보정 커패시터(AC)는 제 1 내지 제 R 스위치들(SW00~SW0r)을 경유하여 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)과 연결될 수 있고, 그리고 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)의 전압들에 따라 보정 커패시터(AC)는 누적된 곱셈 값들(DI<0:r>)에 대응하는 전압에 의해 충전될 수 있고 그리고 누적된 곱셈 값들(DI<0:r>)에 대응하는 전하를 저장할 수 있다. 보정 커패시터(AC)는 제 1 내지 제 P 스위치들(SW10~SW1p)을 경유하여 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)과 더 연결될 수 있고, 그리고 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)의 전압들 및 전하들에 따라 보정 커패시터(AC)의 전압 및 전하는 변할 수 있다(증가하거나 감소할 수 있다). 즉, 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)에 의해 곱셈 값들(DI<0:r>)의 누적 연산 결과는 보정될 수 있다.The correction capacitor AC may be connected to the first to Rth capacitors SC<0> to SC<r> via the first to Rth switches SW00 to SW0r, and the first to Rth Depending on the voltages of the capacitors SC<0> to SC<r>, the correction capacitor AC can be charged by the voltage corresponding to the accumulated multiplication values DI<0:r> and the accumulated multiplication. Charges corresponding to the values DI<0:r> may be stored. The correction capacitor AC may be further connected to the first to P capacitors OC<0> to OC<p> via the first to P switches SW10 to SW1p, and the first to the first capacitors Depending on the voltages and charges of the P capacitors OC<0> to OC<p>, the voltage and charge of the correction capacitor AC may change (may increase or decrease). That is, the cumulative calculation result of the multiplication values DI<0:r> may be corrected by the first to P capacitors OC<0> to OC<p>.

보정 시냅스 어레이(280)는 및 도 2의 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)에 대응하는 전압들에 의해 충전되는 커패시터들(미도시)을 더 포함할 수 있다. 예를 들어, 제 1 오프셋 소수 비트(OFF_p50)에 대응하는 전압에 의해 충전되는 커패시터의 커패시턴스는 제 2 오프셋 소수 비트(OFF_p25)에 대응하는 전압에 의해 충전되는 커패시터의 커패시턴스와 상이할 수 있다. 제 1 오프셋 소수 비트(OFF_p50)에 대응하는 전압에 의해 충전되는 커패시터의 커패시턴스는 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들에 대응하는 전압들에 의해 충전되는 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)의 커패시턴스의 절반(1/2)일 수 있다. 제 2 오프셋 소수 비트(OFF_p25)에 대응하는 전압에 의해 충전되는 커패시터의 커패시턴스는 평균 오프셋 데이터(OFF_AVE<p:0>)의 비트들에 대응하는 전압들에 의해 충전되는 제 1 내지 제 P 커패시터들(OC<0>~OC<p>)의 커패시턴스의 1/4일 수 있다.The correction synapse array 280 may further include capacitors (not shown) charged by voltages corresponding to the first and second offset fractional bits OFF_p50 and OFF_p25 in FIG. 2. For example, the capacitance of the capacitor charged by the voltage corresponding to the first offset fractional bit (OFF_p50) may be different from the capacitance of the capacitor charged by the voltage corresponding to the second offset fractional bit (OFF_p25). The capacitance of the capacitor charged by the voltage corresponding to the first offset fractional bit (OFF_p50) is the first to P capacitors charged by the voltages corresponding to the bits of the average offset data (OFF_AVE<p:0>) It may be half (1/2) of the capacitance of (OC<0>~OC<p>). The capacitance of the capacitor charged by the voltage corresponding to the second offset fractional bit (OFF_p25) is the first to P capacitors charged by the voltages corresponding to the bits of the average offset data (OFF_AVE<p:0>) It may be 1/4 of the capacitance of (OC<0> to OC<p>).

도 5는 본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다. 도 5의 뉴로모픽 연산 장치(1000)는 곱셈기(1100) 및 누적기(1200)를 포함할 수 있다. 5 is a block diagram exemplarily showing a neuromorphic computing device according to another embodiment of the present invention. The neuromorphic computing device 1000 of FIG. 5 may include a multiplier 1100 and an accumulator 1200.

곱셈기(1100)는 특징 데이터(F[1]~F[n]) 및 가중 데이터(W[1]~W[n])를 수신할 수 있다. 여기서, n은 1 이상의 정수일 수 있다. 곱셈기(1100)는 특징 데이터(F[1]~F[n]) 및 가중 데이터(W[1]~W[n])로부터 곱셈 값들(DI<0:r>; 도 5에서 r은 n)을 계산할 수 있다. 곱셈기(1100)는 누적기(1200)에 곱셈 값들(DI<0:r>)을 제공할 수 있다. The multiplier 1100 may receive feature data F[1] to F[n] and weighted data W[1] to W[n]. Here, n may be an integer of 1 or more. The multiplier 1100 multiplies values (DI<0:r>; r in FIG. 5) from feature data F[1] to F[n] and weighted data W[1] to W[n]. Can be calculated. The multiplier 1100 may provide multiplier values DI<0:r> to the accumulator 1200.

곱셈기(1100)는 제 1 내지 제 n 곱셈 연산 소자들(1101~110n)를 포함할 수 있다. 제 1 곱셈 연산 소자(1101)는 제 1 특징 데이터(F[1])와 제 1 가중 데이터(W[1]) 간의 곱셈 값(DI<0>)을 계산할 수 있고, 그리고 제 n 곱셈 연산 소자(110n)는 제 n 특징 데이터(F[n])와 제 n 가중 데이터(W[n]) 간의 곱셈 값(DI<r>)을 계산할 수 있다. 제 1 내지 제 n 곱셈 연산 소자들(1101~110n)은 AND, OR, XOR, NOR, 래치, 플립플롭 등과 같은 논리소자들, 및 그것들의 조합으로 구현될 수 있다. The multiplier 1100 may include first to nth multiplication operation elements 1101 to 110n. The first multiplication operation element 1101 may calculate a multiplication value (DI<0>) between the first characteristic data F[1] and the first weighted data W[1], and the nth multiplication operation element. 110n may calculate a multiplication value DI<r> between the nth feature data F[n] and the nth weighted data W[n]. The first to nth multiplication operation elements 1101 to 110n may be implemented by logical elements such as AND, OR, XOR, NOR, latch, flip-flop, and combinations thereof.

누적기(1200)는 곱셈 값들(DI<0:r>)을 누적하는 연산을 수행할 수 있다. 누적기(1200)는 도 1의 구성요소들(110~170), 도 2의 구성요소들(210~280), 및 도 4의 구성요소들(SW00~SW0r, SW10~SW1p, AC)을 포함할 수 있다. 누적기(1200)는 도 1 내지 도 4에서 설명된 실시 예들 및 원리들에 따라 동작할 수 있다. 누적기(1200)는 MAC 연산의 결과로서 출력 데이터(DO)를 출력할 수 있다.The accumulator 1200 may perform an operation for accumulating multiplication values DI<0:r>. The accumulator 1200 includes the components 110 to 170 of FIG. 1, components 210 to 280 of FIG. 2, and components (SW00 to SW0r, SW10 to SW1p, AC) of FIG. 4. can do. The accumulator 1200 may operate according to the embodiments and principles described in FIGS. 1 to 4. The accumulator 1200 may output the output data DO as a result of the MAC operation.

도 6은 본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치를 예시적으로 도시하는 블록도이다. 도 6의 뉴로모픽 연산 장치(2000)는 전처리기(2100), 연산 코어(2200), 및 후처리기(2300)를 포함할 수 있다. 뉴로모픽 연산 장치(2000)는 아날로그 MAC 연산기로 지칭될 수 있다.6 is a block diagram exemplarily illustrating a neuromorphic computing device according to another embodiment of the present invention. The neuromorphic computing device 2000 of FIG. 6 may include a preprocessor 2100, a computing core 2200, and a postprocessor 2300. The neuromorphic computing device 2000 may be referred to as an analog MAC computing device.

전처리기(2100)는 특징 데이터(F1<0:k>~Fn<0:k>) 및 가중 데이터(W1<0:k>~Wn<0:k>)를 수신할 수 있다. 특징 데이터(F1<0:k>~Fn<0:k>)는 각각 도 5의 특징 데이터(F[1]~F[n])와 서로 동일할 수 있고, 그리고 가중 데이터(W1<0:k>~Wn<0:k>)는 각각 도 5의 가중 데이터(W[1]~W[n])와 서로 동일할 수 있다. 전처리기(2100)는 도 5의 곱셈기(1100)를 포함할 수 있고, 그리고 전처리기(2100)는 도 5에서 설명된 실시 예에 따라 특징 데이터(F1<0:k>~Fn<0:k>) 및 가중 데이터(W1<0:k>~Wn<0:k>)로부터 곱셈 값들(DI<0:r>; 도 6에서 r은 n)을 계산할 수 있다. 전처리기(2100)는 아날로그 MAC 연산에 적합한 포맷으로 곱셈 값들(DI<0:r>)을 생성할 수 있고 그리고 곱셈 값들(DI<0:r>)을 연산 코어(2200)에 제공할 수 있다. 또한, 전처리기(2100)는 도 5의 오프셋 모드에서 동작하는 연산 코어(2200)를 위한 오프셋 입력 값들(ZI<0:r>)을 연산 코어(2200)에 제공할 수 있다. The preprocessor 2100 may receive feature data F1<0:k> to Fn<0:k> and weighted data W1<0:k> to Wn<0:k>. The feature data F1<0:k> to Fn<0:k> may be the same as the feature data F[1] to F[n] in FIG. 5, respectively, and the weighted data W1<0: k>~Wn<0:k>) may be the same as the weighted data W[1] to W[n] in FIG. 5, respectively. The preprocessor 2100 may include the multiplier 1100 of FIG. 5, and the preprocessor 2100 may feature data F1<0:k> to Fn<0:k according to the embodiment described in FIG. 5. >) and weighted data (W1<0:k> to Wn<0:k>) to calculate multiplication values (DI<0:r>; r in FIG. 6 is n). The preprocessor 2100 can generate the multiplication values DI<0:r> in a format suitable for analog MAC operations and provide the multiplication values DI<0:r> to the computation core 2200. . In addition, the preprocessor 2100 may provide offset input values ZI<0:r> for the calculation core 2200 operating in the offset mode of FIG. 5 to the calculation core 2200.

연산 코어(2200)는 곱셈 값들(DI<0:r>)을 누적하는 연산을 수행할 수 있다. 연산 코어(2200)는 도 1의 구성요소들(110~170), 도 2의 구성요소들(210~280), 도 4의 구성요소들(SW00~SW0r, SW10~SW1p, AC), 도 5의 누적기(1200)를 포함할 수 있다. 연산 코어(2200)는 도 1 내지 도 4에서 설명된 실시 예들 및 원리들에 따라 동작할 수 있다. 연산 코어(2200)는 MAC 연산의 결과로서 출력 데이터(DO)를 출력할 수 있다.The operation core 2200 may perform an operation for accumulating multiplication values (DI<0:r>). The computing core 2200 includes components 110 to 170 of FIG. 1, components 210 to 280 of FIG. 2, components of FIG. 4 (SW00 to SW0r, SW10 to SW1p, AC), and FIG. 5 The accumulator 1200 may be included. The computing core 2200 may operate according to the embodiments and principles described in FIGS. 1 to 4. The operation core 2200 may output output data DO as a result of the MAC operation.

후처리기(2300)는 연산 코어(2200)?柱壙? 출력된 출력 데이터(DO)를 후처리할 수 있다. 후처리된 출력 데이터(Dout)는 외부 장치(예컨대, MAC 연산 결과를 이용하는 디지털 블록)에서 처리 가능한 포맷일 수 있다. 후처리기(2300)는 후처리된 출력 데이터(Dout)를 출력할 수 있다. 후처리기(2300)는 전용 회로(예컨대, FPGA, ASICs 등)를 포함하여 구현되거나, 또는 시스템 온 칩으로 구현될 수 있다.The post-processor 2300 is the compute core 2200? The output data DO may be post-processed. The post-processed output data Dout may be a format that can be processed by an external device (for example, a digital block using a result of a MAC operation). The post processor 2300 may output post-processed output data Dout. The post processor 2300 may be implemented by including dedicated circuits (eg, FPGAs, ASICs, etc.), or may be implemented as a system-on-chip.

도 7은 오프셋들에 따른 도 6의 뉴로모픽 연산 장치의 입력과 출력 간의 관계를 도시하는 그래프들이다. 도 7에서 가로 축은 입력(u)이고 그리고 세로 축은 출력(f1(u)~f3(u))이다. 출력들(f1(u)~f3(u))은 활성 함수(activation function)들일 수 있고, 입력(u)는 각 함수들(f1(u)~f3(u))에 대한 입력일 수 있다. 입력(u)는 MAC 연산 결과일 수 있고, 그리고, 예를 들어, 입력(u)는 도 6의 후처리된 출력 데이터(Dout)일 수 있다. 함수들(f1(u)~f3(u))은 각각 f1(u)=max(0, (u+offset)), f2(u)=max(0, u), f3(u)=max(0, (u-offset))와 같이 표현될 수 있다.7 is graphs showing a relationship between an input and an output of the neuromorphic computing device of FIG. 6 according to offsets. In Figure 7, the horizontal axis is the input (u) and the vertical axis is the output (f1(u) to f3(u)). The outputs f1(u) to f3(u) may be activation functions, and the input u may be an input to each function f1(u) to f3(u). The input u may be a result of a MAC operation, and, for example, the input u may be post-processed output data Dout of FIG. 6. The functions f1(u) to f3(u)) are f1(u)=max(0, (u+offset)), f2(u)=max(0, u), f3(u)=max(, respectively) 0, (u-offset)).

그래프 (b)는 뉴로모픽 연산 장치(2000)의 MAC 연산 도중 오프셋이 발생하지 않는 경우이다. 입력(u)가 0보다 작은 경우, 출력(f2(u))는 0일 수 있다. 입력(u)가 0보다 크거나 같은 경우, 출력(f2(u))는 입력 u와 동일할 수 있다.The graph (b) is a case where an offset does not occur during MAC calculation of the neuromorphic computing device 2000. When the input u is less than 0, the output f2(u) may be 0. When the input u is greater than or equal to 0, the output f2(u) may be the same as the input u.

그래프 (a)는 뉴로모픽 연산 장치(2000)의 MAC 연산 도중 양의 오프셋(+offset)이 발생하는 경우이다. 입력(u)가 음의 오프셋(-offset)보다 작은 경우, 출력(f1(u))은 0일 수 있다. 입력(u)가 음의 오프셋(-offset)보다 크거나 같은 경우, 출력(f1(u))은 입력과 양의 오프셋의 합(u+offset)일 수 있다. 즉, 출력(f1(u))은 입력(u)뿐만 아니라 부가적인 양의 오프셋을 더 포함할 수 있다. 따라서, 뉴로모픽 연산 장치(2000)로부터 계산된 출력 데이터(Dout)의 신뢰성(또는 인식률)은 감소할 수 있다. 양의 오프셋(+offset)이 커질수록 출력 데이터(Dout)의 신뢰성(또는 인식률)은 더 감소할 수 있다.Graph (a) is a case where a positive offset (+offset) occurs during the MAC operation of the neuromorphic computing device 2000. If the input u is less than a negative offset, the output f1(u) may be zero. When the input u is greater than or equal to a negative offset (-offset), the output f1(u) may be the sum of the input and the positive offset (u+offset). That is, the output f1(u) may further include an additional positive offset as well as the input u. Therefore, the reliability (or recognition rate) of the output data Dout calculated from the neuromorphic computing device 2000 may be reduced. As the positive offset (+offset) increases, the reliability (or recognition rate) of the output data Dout may further decrease.

그래프 (c)는 뉴로모픽 연산 장치(2000)의 MAC 연산 도중 음의 오프셋(-offset)이 발생하는 경우이다. 입력(u)가 양의 오프셋(+offset)보다 작은 경우, 출력(f3(u))은 0일 수 있다. 입력(u)가 양의 오프셋(+offset)보다 크거나 같은 경우, 출력(f3(u))은 입력과 음의 오프셋의 합(u-offset)일 수 있다. 즉, 입력(u)의 손실 부분일 발생할 수 있고 그리고 출력(f3(u))은 손실 부분을 제외한 입력(u)의 일부만을 포함할 수 있다. 따라서, 뉴로모픽 연산 장치(2000)로부터 계산된 출력 데이터(Dout)의 신뢰성(또는 인식률)은 급격하게 감소할 수 있다. 음의 오프셋(-offset)이 발생하는 경우에서의 신뢰성은, 양의 오프셋(+offset)이 발생하는 경우에서의 신뢰성보다 더 낮을 수 있다. 도 1 내지 도 4에서 설명된 오프셋을 보정하는 실시 예들 및 원리들에 따라 양의 오프셋(+offset) 및 음의 오프셋(-offset)이 감소할 수 있다.Graph (c) is a case where a negative offset (-offset) occurs during the MAC operation of the neuromorphic computing device 2000. If the input u is less than a positive offset (+offset), the output f3(u) may be zero. When the input u is greater than or equal to a positive offset (+offset), the output f3(u) may be the sum of the input and negative offset (u-offset). That is, it may occur the loss portion of the input (u) and the output (f3(u)) may include only a portion of the input (u) excluding the loss portion. Accordingly, the reliability (or recognition rate) of the output data Dout calculated from the neuromorphic computing device 2000 may be rapidly reduced. Reliability in the case where a negative offset (-offset) occurs may be lower than reliability in a case where a positive offset (+offset) occurs. The positive offset (+offset) and the negative offset (-offset) may be reduced according to embodiments and principles of correcting the offset described in FIGS. 1 to 4.

도 8은 본 발명의 일 실시 예에 따라 뉴로모픽 연산 장치의 동작 방법을 예시적으로 나타내는 순서도이다. 도 8은 도 1 내지 도 7을 참조하여 설명될 것이다. 8 is a flowchart exemplarily showing a method of operating a neuromorphic computing device according to an embodiment of the present invention. 8 will be described with reference to FIGS. 1 to 7.

S110 단계에서, 뉴로모픽 연산 장치(2000)는 복수의 횟수들만큼 복수의 오프셋 데이터를 측정할 수 있다. 예를 들어, 뉴로모픽 연산 장치(2000)는

Figure pat00007
(k는 1 이상의 정수) 횟수들만큼 복수의 오프셋 데이터를 측정할 수 있다. S120 단계에서, 뉴로모픽 연산 장치(2000)는 복수의 오프셋 데이터를 누적할 수 있다. S130 단계에서, 뉴로모픽 연산 장치(2000)는 누적된 오프셋 데이터로부터 적어도 하나의 비트를 추출함으로써 평균 오프셋 데이터를 획득할 수 있다.In operation S110, the neuromorphic computing device 2000 may measure a plurality of offset data by a plurality of times. For example, the neuromorphic computing device 2000
Figure pat00007
(k is an integer of 1 or more) A plurality of offset data can be measured as many times as possible. In operation S120, the neuromorphic computing device 2000 may accumulate a plurality of offset data. In operation S130, the neuromorphic computing device 2000 may obtain average offset data by extracting at least one bit from the accumulated offset data.

S140 단계에서, 뉴로모픽 연산 장치(2000)는 복수의 특징 데이터(F1<0:k>~Fn<0:k>) 및 복수의 가중 데이터(W1<0:k>~Wn<0:k>) 간의 복수의 곱셈 값들(DI<0:r>)을 계산할 수 있다. S150 단계에서, 뉴로모픽 연산 장치(2000)는 복수의 곱셈 값들(DI<0:r>)을 누적할 수 있다. 뉴로모픽 연산 장치(2000)는 복수의 곱셈 값들(DI<0:r>)의 누적을 위해 누적 커패시터들(예컨대, 도 4의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>))을 보정 커패시터(예컨대, 도 4의 보정 커패시터(AC))와 동시에 연결할 수 있다.In operation S140, the neuromorphic computing device 2000 may include a plurality of feature data F1<0:k> to Fn<0:k> and a plurality of weighted data W1<0:k> to Wn<0:k. Multiple multiplication values (DI<0:r>) between >) may be calculated. In operation S150, the neuromorphic computing device 2000 may accumulate a plurality of multiplication values (DI<0:r>). The neuromorphic computing device 2000 accumulates capacitors (eg, first to R capacitors SC<0> to SC<r in FIG. 4) for accumulating a plurality of multiplication values DI<0:r>. >)) may be connected to the correction capacitor (for example, the correction capacitor AC in FIG. 4) at the same time.

S160 단계에서, 뉴로모픽 연산 장치(2000)는 평균 오프셋 데이터에 따라 복수의 곱셈 값들의 누적 결과를 보정할 수 있다. 뉴로모픽 연산 장치(2000)는 평균 오프셋 데이터에 따라 복수의 곱셈 값들(DI<0:r>)의 누적 결과를 보정하기 위해 누적 커패시터들(예컨대, 도 4의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>)) 및 오프셋 커패시터들(예컨대, 도 4의 제 1 내지 제 P 커패시터들(OC<0>~OC<p>))을 보정 커패시터(예컨대, 도 4의 보정 커패시터(AC))와 연결할 수 있다.In operation S160, the neuromorphic computing device 2000 may correct a cumulative result of a plurality of multiplication values according to the average offset data. The neuromorphic computing apparatus 2000 accumulates capacitors (for example, first to R capacitors of FIG. 4 to correct the cumulative result of a plurality of multiplication values DI<0:r> according to the average offset data) SC<0> to SC<r>) and offset capacitors (e.g., first to P capacitors (OC<0> to OC<p>) in FIG. 4) and a correction capacitor (e.g., correction in FIG. 4) Capacitor (AC)).

뉴로모픽 연산 장치(2000)는 평균 오프셋 데이터에 따라 누적 커패시터들(예컨대, 도 1, 도 4의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>))을 이용하여 계산되는 MAC 연산의 누적 결과들을 보정할 수 있다. 따라서, 뉴로모픽 연산 장치(100)는 누적 결과의 오프셋 에러를 제거할 수 있다. The neuromorphic computing device 2000 is calculated using cumulative capacitors (eg, first through R capacitors SC<0> to SC<r> in FIGS. 1 and 4) according to the average offset data. Accumulated results of MAC operations can be corrected. Therefore, the neuromorphic computing device 100 can eliminate the offset error of the cumulative result.

위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. The contents described above are specific examples for carrying out the present invention. The present invention will include not only the embodiments described above, but also simple design changes or easily changeable embodiments. In addition, the present invention will also include techniques that can be easily modified in the future using the above-described embodiments.

100, 200, 1000, 2000: 뉴로모픽 연산 장치
110, 210: 누적 시냅스 어레이
120, 220: 아날로그 디지털 변환기
130, 230: 오프셋 누적기
140, 240: 비트 추출기
150, 250: 오프셋 제어기
160, 260: 제 1 멀티플렉서
170 270: 제 2 멀티플렉서
280: 보정 시냅스 어레이
100, 200, 1000, 2000: neuromorphic computing device
110, 210: cumulative synapse array
120, 220: analog to digital converter
130, 230: offset accumulator
140, 240: bit extractor
150, 250: offset controller
160, 260: first multiplexer
170 270: second multiplexer
280: calibrated synapse array

Claims (12)

곱셈기 및 누적기를 이용하여 MAC(multiply-accumulate) 연산을 수행하는 뉴로모픽 연산 장치에 있어서,
복수의 횟수들만큼 측정된 복수의 오프셋 데이터를 수신하고 그리고 상기 복수의 오프셋 데이터를 누적하는 오프셋 누적기;
상기 누적된 복수의 오프셋 데이터로부터 적어도 하나의 제 1 비트를 추출함으로써 평균 오프셋 데이터를 획득하는 비트 추출기; 및
상기 곱셈기에 의해 생성된 복수의 곱셈 값들을 누적하고 그리고 상기 평균 오프셋 데이터에 따라 보정된 상기 복수의 곱셈 값들의 누적 결과를 출력하는 누적 시냅스 어레이를 포함하는 뉴로모픽 연산 장치.
In the neuromorphic computing device for performing a multiply-accumulate (MAC) operation using a multiplier and accumulator,
An offset accumulator that receives a plurality of offset data measured a plurality of times and accumulates the plurality of offset data;
A bit extractor for obtaining average offset data by extracting at least one first bit from the accumulated plurality of offset data; And
And a cumulative synaptic array that accumulates a plurality of multiplication values generated by the multiplier and outputs a cumulative result of the plurality of multiplication values corrected according to the average offset data.
제 1 항에 있어서,
상기 누적 시냅스 어레이는 상기 복수의 곱셈 값들 중 제 1 곱셈 값에 대응하는 제 1 전압에 의해 충전되는 제 1 커패시터를 포함하는 뉴로모픽 연산 장치.
According to claim 1,
The cumulative synaptic array is a neuromorphic computing device including a first capacitor charged by a first voltage corresponding to a first multiplication value among the plurality of multiplication values.
제 2 항에 있어서,
상기 누적 시냅스 어레이는 상기 복수의 곱셈 값들 중 제 2 곱셈 값에 대응하는 제 2 전압에 의해 충전되는 제 2 커패시터를 더 포함하되,
상기 제 1 및 제 2 커패시터들은 동시에 충전되는 뉴로모픽 연산 장치.
According to claim 2,
The cumulative synapse array further includes a second capacitor charged by a second voltage corresponding to a second multiplication value among the plurality of multiplication values,
The first and second capacitors are neuromorphic computing devices that are charged simultaneously.
제 2 항에 있어서,
상기 평균 오프셋 데이터의 제 1 비트에 대응하는 제 3 전압에 의해 충전되는 제 3 커패시터를 더 포함하는 뉴로모픽 연산 장치.
According to claim 2,
And a third capacitor charged by a third voltage corresponding to the first bit of the average offset data.
제 4 항에 있어서,
상기 제 1 및 3 커패시터들과의 연결에 의해 상기 평균 오프셋 데이터에 따라 보정된 상기 복수의 곱셈 값들의 상기 누적 결과에 대응하는 제 4 전압에 의해 충전되는 제 4 커패시터를 더 포함하는 뉴로모픽 연산 장치.
The method of claim 4,
A neuromorphic operation further comprising a fourth capacitor charged by a fourth voltage corresponding to the cumulative result of the plurality of multiplication values corrected according to the average offset data by connection with the first and third capacitors. Device.
제 5 항에 있어서,
상기 제 1 커패시터 및 상기 제 4 커패시터 사이에 위치하는 제 1 스위치;
상기 제 3 커패시터 및 상기 제 4 커패시터 사이에 위치하는 제 2 스위치; 및
상기 제 1 및 3 커패시터들이 충전된 후에 상기 제 4 커패시터를 상기 제 1 및 3 커패시터들과 연결하도록 상기 제 1 및 제 2 스위치들을 제어하는 오프셋 제어기를 더 포함하는 뉴로모픽 연산 장치.
The method of claim 5,
A first switch positioned between the first capacitor and the fourth capacitor;
A second switch positioned between the third capacitor and the fourth capacitor; And
And an offset controller for controlling the first and second switches to connect the fourth capacitor with the first and third capacitors after the first and third capacitors are charged.
제 1 항에 있어서,
상기 비트 추출기는 상기 누적된 복수의 오프셋 데이터로부터 적어도 하나의 제 2 비트를 더 추출하고, 그리고
상기 뉴로모픽 연산 장치는:
상기 적어도 하나의 제 1 비트에 대응하는 제 5 전압에 의해 충전되는 제 5 커패시터; 및
상기 적어도 하나의 제 2 비트에 대응하는 제 6 전압에 의해 충전되는 제 6 커패시터를 포함하되,
상기 제 5 커패시터의 커패시턴스는 상기 제 6 커패시터의 커패시턴스와 상이한 뉴로모픽 연산 장치.
According to claim 1,
The bit extractor further extracts at least one second bit from the accumulated plurality of offset data, and
The neuromorphic computing device is:
A fifth capacitor charged by a fifth voltage corresponding to the at least one first bit; And
A sixth capacitor charged by a sixth voltage corresponding to the at least one second bit,
A neuromorphic computing device having a capacitance of the fifth capacitor different from that of the sixth capacitor.
제 1 항에 있어서,
상기 복수의 횟수들은
Figure pat00008
(k는 1 이상의 정수)인 뉴로모픽 연산 장치.
According to claim 1,
The plurality of times
Figure pat00008
(k is an integer greater than or equal to 1).
제 8 항에 있어서,
상기 비트 추출기가 상기 누적된 복수의 오프셋 데이터로부터 복수의 비트들을 추출하는 경우, 상기. 복수의 비트들은 연속하는 뉴로모픽 연산 장치.
The method of claim 8,
When the bit extractor extracts a plurality of bits from the accumulated plurality of offset data. A plurality of consecutive neuromorphic bits.
뉴로모픽 연산 장치의 동작 방법에 있어서,
복수의 횟수들만큼 복수의 오프셋 데이터를 측정하는 단계;
상기 복수의 오프셋 데이터를 누적하는 단계;
상기 누적된 복수의 오프셋 데이터로부터 적어도 하나의 제 1 비트를 추출함으로써 평균 오프셋 데이터를 획득하는 단계;
복수의 특징 데이터 및 복수의 가중 데이터 간의 복수의 곱셈 값들을 계산하는 단계;
상기 복수의 곱셈 값들을 누적하는 단계; 및
상기 평균 오프셋 데이터에 따라 상기 복수의 곱셈 값들의 누적 결과를 보정하는 단계를 포함하는 동작 방법.
In the operation method of the neuromorphic computing device,
Measuring a plurality of offset data by a plurality of times;
Accumulating the plurality of offset data;
Obtaining average offset data by extracting at least one first bit from the accumulated plurality of offset data;
Calculating a plurality of multiplication values between the plurality of feature data and the plurality of weighted data;
Accumulating the plurality of multiplication values; And
And correcting a cumulative result of the plurality of multiplication values according to the average offset data.
제 10 항에 있어서,
상기 뉴로모픽 연산 장치는:
상기 복수의 곱셈 값들을 각각 저장하는 복수의 누적 커패시터들; 및
상기 누적 결과를 저장하는 보정 커패시터를 포함하되,
상기 복수의 곱셈 값들을 누적하는 단계는, 상기 복수의 누적 커패시터들을 상기 보정 커패시터와 동시에 연결하는 단계를 포함하는 동작 방법.
The method of claim 10,
The neuromorphic computing device is:
A plurality of accumulated capacitors each storing the plurality of multiplication values; And
Compensating capacitor for storing the cumulative results,
The step of accumulating the plurality of multiplying values includes simultaneously connecting the plurality of accumulated capacitors with the correction capacitor.
제 11 항에 있어서,
상기 뉴로모픽 연산 장치는, 상기 평균 오프셋 데이터의 복수의 비트들을 각각 저장하는 복수의 오프셋 커패시터들을 더 포함하되,
상기 평균 오프셋 데이터에 따라 상기 복수의 곱셈 값들의 상기 누적 결과를 보정하는 단계는, 상기 복수의 오프셋 커패시터들을 상기 보정 커패시터와 더 연결하는 단계를 포함하는 동작 방법.
The method of claim 11,
The neuromorphic computing device further includes a plurality of offset capacitors, each storing a plurality of bits of the average offset data,
Correcting the cumulative result of the plurality of multiplication values according to the average offset data, further comprising connecting the plurality of offset capacitors with the correction capacitor.
KR1020190103396A 2018-12-04 2019-08-23 Neuromorphic arithmetic device and operating method thereof KR20200068560A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/695,509 US11204740B2 (en) 2018-12-04 2019-11-26 Neuromorphic arithmetic device and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180154817 2018-12-04
KR1020180154817 2018-12-04

Publications (1)

Publication Number Publication Date
KR20200068560A true KR20200068560A (en) 2020-06-15

Family

ID=71081807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190103396A KR20200068560A (en) 2018-12-04 2019-08-23 Neuromorphic arithmetic device and operating method thereof

Country Status (1)

Country Link
KR (1) KR20200068560A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220096769A (en) * 2020-12-31 2022-07-07 한국과학기술원 Apparatus and method for mac calculation for machine learning algorithm
WO2023085545A1 (en) * 2021-11-11 2023-05-19 서울대학교산학협력단 Hardware-based artificial neural network providing device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220096769A (en) * 2020-12-31 2022-07-07 한국과학기술원 Apparatus and method for mac calculation for machine learning algorithm
US11803354B2 (en) 2020-12-31 2023-10-31 Korea Advanced Institute Of Science And Technology MAC operating device and method for processing machine learning algorithm
WO2023085545A1 (en) * 2021-11-11 2023-05-19 서울대학교산학협력단 Hardware-based artificial neural network providing device

Similar Documents

Publication Publication Date Title
CN109816026B (en) Fusion device and method of convolutional neural network and impulse neural network
US9698812B2 (en) Multiplying analog to digital converter and method
Zhang et al. 18.4 A matrix-multiplying ADC implementing a machine-learning classifier directly with data conversion
KR102653822B1 (en) Mixed signal computing system and method
CN111801693B (en) Neural network device, signal generation method, and program
CN110288510B (en) Proximity sensor vision perception processing chip and Internet of things sensing device
CN109308520B (en) FPGA circuit and method for realizing softmax function calculation
KR20200068560A (en) Neuromorphic arithmetic device and operating method thereof
KR20190085785A (en) Neuromorphic arithmetic device and operating method thereof
US20210170962A1 (en) Computing system, server and on-vehicle device
US11340869B2 (en) Sum-of-products operator, sum-of-products operation method, logical operation device, and neuromorphic device
US9866778B2 (en) Predictive sigma-delta ADC filter for power consumption
US11204740B2 (en) Neuromorphic arithmetic device and operating method thereof
US20190294957A1 (en) Arithmetic device and arithmetic method
KR102340412B1 (en) Log-quantized mac for stochastic computing and accelerator comprising the same
US20190303756A1 (en) Method of Neural Network Training Using Floating-Point Signed Digit Representation
US9847789B1 (en) High precision sampled analog circuits
CN113489925B (en) Focal plane detector reading circuit for realizing convolution calculation
EP3796233A1 (en) Information processing device and method, and program
KR102556506B1 (en) Neuromorphic arithmetic device and operating method thereof
WO2021038216A1 (en) Data processing
CN116402106B (en) Neural network acceleration method, neural network accelerator, chip and electronic equipment
KR102592708B1 (en) Neural network accelerator configured to perform operation on logarithm domain
US11050965B1 (en) Image sensor and image recognition apparatus using the same
KR102574426B1 (en) Apparatus and method for mac calculation for machine learning algorithm

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right