KR20200068560A - Neuromorphic arithmetic device and operating method thereof - Google Patents
Neuromorphic arithmetic device and operating method thereof Download PDFInfo
- 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
Links
- 238000011017 operating method Methods 0.000 title 1
- 230000001186 cumulative effect Effects 0.000 claims abstract description 67
- 210000000225 synapse Anatomy 0.000 claims abstract description 46
- 239000003990 capacitor Substances 0.000 claims description 95
- 238000012937 correction Methods 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 24
- 230000000946 synaptic effect Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000003213 activating effect Effects 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural 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
Description
본 발명은 뉴로모픽 연산 장치에 관한 것으로, 더욱 상세하게는 오프셋 보정을 수행할 수 있는 뉴로모픽 연산 장치 및 그것의 동작 방법에 관한 것이다.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
뉴로모픽 연산 장치(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
뉴로모픽 연산 장치(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
누적 시냅스 어레이(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
제 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
아날로그 디지털 변환기(120)는 누적 시냅스 어레이(110)로부터 누적 연산 값들(ACD)을 수신할 수 있다. 아날로그 디지털 변환기(120)는 누적 연산 값들(ACD)을 아날로그 신호에서 디지털 신호로 변환할 수 있다. 아날로그 디지털 변환기(120)는 디지털로 변환된 누적 연산 값들을 출력할 수 있고, 디지털로 변환된 누적 연산 값들은 출력 데이터(DO)로 지칭될 수 있다. 구체적으로, 오프셋 모드에서 오프셋 입력 값들(ZI<0:r>)에 기초하여 생성된 출력 데이터(DO)는 오프셋 데이터로 지칭될 수 있다. 오프셋 데이터는 도 2에서 좀 더 구체적으로 설명될 것이다.The analog-to-
오프셋 모드에서, 오프셋 누적기(130)는 오프셋 데이터인 출력 데이터(DO)를 수신할 수 있다. 오프셋 모드에서, 뉴로모픽 연산 장치(100)는 사전에 결정된 횟수들만큼 오프셋들을 계산하거나 측정할 수 있고, 그리고 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 오프셋 데이터를 수신할 수 있다. 예를 들어, 사전에 결정된 횟수들은 (k는 1 이상의 정수)일 수 있다. 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 획득된 오프셋 데이터에 기초하여 오프셋 누적 데이터(ACC)를 생성할 수 있다. 예를 들어, 오프셋 누적기(130)는 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성할 수 있다. 오프셋 누적기(130)는 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수 있다. 일 예에서, 오프셋 누적기(130)는, 오프셋 모드에서 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성하고, 그리고 연산 모드에서 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수 있다. 또는, 다른 예에서, 오프셋 누적기(130)는, 오프셋 모드에서 적어도 하나의 사전에 결정된 횟수들만큼 획득된 오프셋 데이터를 더하거나 누적함으로써 누적 데이터(ACC)를 생성하고, 그리고 비트 추출기(140)에 오프셋 누적 데이터(ACC)를 제공할 수도 있다.In the offset mode, the offset
비트 추출기(140)는 오프셋 누적 데이터(ACC)에 기초하여 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 예를 들어, 비트 추출기(140)는 오프셋 누적 데이터(ACC)에 포함된 복수의 비트들 중 적어도 하나의 비트를 추출하거나 버림(truncate)으로써 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 비트 추출기(140)는, 오프셋 모드 또는 동작 모드에서, 평균 오프셋 데이터(ACC_TR)를 제 1 멀티플렉서(160)에 제공할 수 있다. 비트 추출기(140)는 버림기(truncator)로 지칭될 수도 있다. 오프셋 누적기(130) 및 비트 추출기(140)의 동작 방법은 도 2에서 좀 더 구체적으로 설명될 것이다.The
오프셋 제어기(150)는 제 1 멀티플렉서(160) 및 제 2 멀티플렉서(170)를 제어할 수 있다. 오프셋 제어기(150)는 제 1 멀티플렉서(160) 및 제 2 멀티플렉서(170)에 제어 신호(OFFCAL)를 제공할 수 있다.The offset
제 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
제 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
오프셋 모드에서, 뉴로모픽 연산 장치(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
도 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
오프셋 모드에서, 오프셋 누적기(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
비트 추출기(140)는 오프셋 누적 데이터(OFF_SUM)에 포함된 비트들 중 적어도 하나의 비트를 추출하거나 버릴 수 있다. 비트 추출기(140)가 오프셋 누적 데이터(OFF_SUM)로부터 복수의 비트들을 추출하는 경우, 복수의 비트들은 연속할 수 있다. 도 2에서, 예를 들면, 비트 추출기(140)는, 오프셋 누적 데이터(OFF_SUM)의 상위 5비트들(OFF_AVE<5:0>; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서 을 지시하는 비트들)을 추출하거나, 또는 하위 2 비트들(OFF_p50, OFF_p25; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서 을 지시하는 비트들)을 제거(truncate)할 수 있다. 오프셋 누적 데이터(OFF_SUM)의 상위 5비트들은 오프셋 평균 비트들(OFF_AVE<5:0>)로 지칭될 수 있다. 오프셋 누적 데이터(OFF_SUM)의 하위 2비트들은 각각 제 1 오프셋 소수 비트(OFF_p50; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서 을 지시하는 비트), 제 2 오프셋 소수 비트(OFF_p25; 예컨대, 오프셋 누적 데이터(OFF_SUM)에서 을 지시하는 비트)로 지칭될 수 있다.The
추출된 오프셋 평균 비트들(OFF_AVE<5:0>)은 도 1의 평균 오프셋 데이터(ACC_TR)일 수 있다. 결국, 비트 추출기(140)는 오프셋 누적 데이터(OFF_SUM)의 오프셋 평균 비트들(OFF_AVE<5:0>)을 추출하거나, 또는 제 1 및 제 2 오프셋 소수 비트들(OFF_p50, OFF_p25)을 버림함으로써 평균 오프셋 데이터(ACC_TR)를 생성할 수 있다. 뉴로모픽 연산 장치(100)가 오프셋들을 4와 같은 (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
제 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
도 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
보정 시냅스 어레이(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
오프셋 제어기(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
보정 시냅스 어레이(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
제 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
도 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
누적 시냅스 어레이(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
보정 시냅스 어레이(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
오프셋 제어기(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
오프셋 제어기(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
제 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
보정 커패시터(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
곱셈기(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
누적기(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,
도 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
전처리기(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
연산 코어(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
후처리기(2300)는 연산 코어(2200)?柱壙? 출력된 출력 데이터(DO)를 후처리할 수 있다. 후처리된 출력 데이터(Dout)는 외부 장치(예컨대, MAC 연산 결과를 이용하는 디지털 블록)에서 처리 가능한 포맷일 수 있다. 후처리기(2300)는 후처리된 출력 데이터(Dout)를 출력할 수 있다. 후처리기(2300)는 전용 회로(예컨대, FPGA, ASICs 등)를 포함하여 구현되거나, 또는 시스템 온 칩으로 구현될 수 있다.The post-processor 2300 is the
도 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
그래프 (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
그래프 (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
도 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)는 (k는 1 이상의 정수) 횟수들만큼 복수의 오프셋 데이터를 측정할 수 있다. S120 단계에서, 뉴로모픽 연산 장치(2000)는 복수의 오프셋 데이터를 누적할 수 있다. S130 단계에서, 뉴로모픽 연산 장치(2000)는 누적된 오프셋 데이터로부터 적어도 하나의 비트를 추출함으로써 평균 오프셋 데이터를 획득할 수 있다.In operation S110, the
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
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
뉴로모픽 연산 장치(2000)는 평균 오프셋 데이터에 따라 누적 커패시터들(예컨대, 도 1, 도 4의 제 1 내지 제 R 커패시터들(SC<0>~SC<r>))을 이용하여 계산되는 MAC 연산의 누적 결과들을 보정할 수 있다. 따라서, 뉴로모픽 연산 장치(100)는 누적 결과의 오프셋 에러를 제거할 수 있다. The
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 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)
복수의 횟수들만큼 측정된 복수의 오프셋 데이터를 수신하고 그리고 상기 복수의 오프셋 데이터를 누적하는 오프셋 누적기;
상기 누적된 복수의 오프셋 데이터로부터 적어도 하나의 제 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 커패시터를 포함하는 뉴로모픽 연산 장치.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 커패시터를 더 포함하되,
상기 제 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.
상기 평균 오프셋 데이터의 제 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.
상기 제 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.
상기 제 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.
상기 비트 추출기는 상기 누적된 복수의 오프셋 데이터로부터 적어도 하나의 제 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.
상기 복수의 횟수들은 (k는 1 이상의 정수)인 뉴로모픽 연산 장치.According to claim 1,
The plurality of times (k is an integer greater than or equal to 1).
상기 비트 추출기가 상기 누적된 복수의 오프셋 데이터로부터 복수의 비트들을 추출하는 경우, 상기. 복수의 비트들은 연속하는 뉴로모픽 연산 장치.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.
상기 뉴로모픽 연산 장치는:
상기 복수의 곱셈 값들을 각각 저장하는 복수의 누적 커패시터들; 및
상기 누적 결과를 저장하는 보정 커패시터를 포함하되,
상기 복수의 곱셈 값들을 누적하는 단계는, 상기 복수의 누적 커패시터들을 상기 보정 커패시터와 동시에 연결하는 단계를 포함하는 동작 방법.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.
상기 뉴로모픽 연산 장치는, 상기 평균 오프셋 데이터의 복수의 비트들을 각각 저장하는 복수의 오프셋 커패시터들을 더 포함하되,
상기 평균 오프셋 데이터에 따라 상기 복수의 곱셈 값들의 상기 누적 결과를 보정하는 단계는, 상기 복수의 오프셋 커패시터들을 상기 보정 커패시터와 더 연결하는 단계를 포함하는 동작 방법.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.
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)
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 |
-
2019
- 2019-08-23 KR KR1020190103396A patent/KR20200068560A/en active IP Right Grant
Cited By (3)
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 |