KR20190007143A - Neuromorphic arithmetic device - Google Patents
Neuromorphic arithmetic device Download PDFInfo
- Publication number
- KR20190007143A KR20190007143A KR1020170088008A KR20170088008A KR20190007143A KR 20190007143 A KR20190007143 A KR 20190007143A KR 1020170088008 A KR1020170088008 A KR 1020170088008A KR 20170088008 A KR20170088008 A KR 20170088008A KR 20190007143 A KR20190007143 A KR 20190007143A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- synapse
- signal
- pulse width
- output
- Prior art date
Links
Images
Classifications
-
- 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
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Abstract
Description
본 발명은 뉴로모픽 연산 장치에 관한 것으로, 좀 더 구체적으로 아날로그 기반의 시냅스 어레이로 구현된 뉴로모픽 연산 장치에 관한 것이다.The present invention relates to a neuromorphic computing apparatus, and more particularly to a neuromorph computing apparatus implemented with an analog-based synaptic array.
뇌는 수천억 개의 신경 세포, 즉 뉴런을 포함한다. 뉴런은 수천 개의 다른 뉴런과 신호를 주고 받는 시냅스를 통하여 정보를 학습하고, 기억할 수 있다. 뉴로모픽 연산 장치는 이러한 뉴런 및 시냅스를 모방하여 정보를 처리하는 장치이다. 뉴로모픽 연산 장치는 생물학적 뉴런의 구성 요소와 동일하게, 축색 돌기(axon), 수상 돌기(dendrite), 및 세포의 몸체(soma)에 해당하는 회로로 구성될 수 있다. 특히, 뉴로모픽 연산 장치는 뉴런과 뉴런 사이를 연결하는 시냅스 회로에서 연산을 수행할 수 있다.The brain contains hundreds of billions of neurons, or neurons. Neurons can learn and remember information through synapses that send and receive signals to and from thousands of other neurons. A neurotomy computing device is a device that implements information by mimicking such neurons and synapses. The neuromorphic computing device may be composed of a circuit corresponding to an axon, a dendrite, and a soma of a cell, just like the components of a biological neuron. In particular, a neuromorphic computing device can perform operations on synaptic circuits connecting neurons and neurons.
중앙 처리 장치와 메모리가 분리되어 상호간에 데이터를 주고 받는 폰노이만 구조를 기반의 연산 장치와 비교하여, 뉴로모픽 연산 장치는 입력된 정보를 병렬적으로 처리할 수 있는 장점을 갖는다. 뉴로모픽 연산 장치는 정보 처리 중에 새롭게 발생한 다른 정보를 처리할 수 있다. 뉴로모픽 연산 장치는 불특정한 환경에 스스로 적응할 수 있는 지능화된 시스템을 구현하는 데 효과적일 수 있다. 따라서, 음성 인식, 위험 인지, 보안 및 감시, 자율 주행, 및 실시간 고속 신호 처리 등을 효과적으로 수행하기 위한 뉴로모픽 연산 장치에 대한 연구가 진행되고 있다.Compared with the arithmetic unit based on the von Neumann structure in which the central processing unit and the memory are separated from each other and data is exchanged with each other, the neuromorphic arithmetic unit has an advantage in that the input information can be processed in parallel. The new Lomographic computing device can process other newly generated information during information processing. New Lomographic computing devices can be effective in implementing intelligent systems that can adapt themselves to an unspecified environment. Therefore, studies are being made on neuromorphic computing devices for effectively performing voice recognition, risk awareness, security and surveillance, autonomous navigation, and real-time high-speed signal processing.
뉴로모픽 연산 장치의 정확성 또는 안정성은 뉴런 회로들 사이의 연결 구조 및 연결 강도(synaptic weight)에 의하여 결정될 수 있다. 이 때, 공정 상의 이유 등으로 인하여 뉴런 회로들 사이의 물리적 또는 전기적 불일치가 발생할 수 있다. 특히, 아날로그 기반으로 구현된 뉴로모픽 연산 장치의 동작 중에 회로의 내부 요인 등에 근거하여 오동작이 유발될 수 있다. 특히, 복수의 뉴런 그룹 중 특정 뉴런을 선택하는 승자 독식(WTA: winner take all) 방식에서 이러한 불일치는 치명적인 오류를 초래할 수 있다. 따라서, 뉴로모픽 연산 장치의 오류를 개선하기 위한 방안이 요구되고 있다.The accuracy or stability of neoprobot computing devices can be determined by the connection structure and synaptic weight between neuron circuits. At this time, physical or electrical mismatches between the neuron circuits may occur due to process reasons, etc. In particular, a malfunction may be caused on the basis of the internal factors of the circuit during operation of the analog-based neoprope operation apparatus. In particular, in a winner take all (WTA) method of selecting specific neurons among a plurality of neuron groups, this discrepancy can lead to catastrophic failure. Therefore, a method for improving the error of the neuromorphic computing device is required.
본 발명은 아날로그 방식으로 구현된 시냅스 어레이의 선형성을 개선하면서, 보다 작은 면적으로 구현 가능한 뉴로모픽 연산 장치를 제공할 수 있다.The present invention can provide a neuromorph computing apparatus capable of realizing a smaller area while improving the linearity of a synapse array implemented in an analog manner.
본 발명의 실시예에 따른 뉴로모픽 연산 장치는 펄스폭 변조기, 시냅스 어레이, 발진기, 카운터, 및 보상기를 포함한다. 펄스폭 변조기는 입력 데이터 값에 근거하여 펄스폭 변조 신호를 생성할 수 있다. 시냅스 어레이는 각각이 펄스폭 변조 신호 및 가중치의 곱셈 연산을 수행하여 전류 신호를 출력하는 복수의 시냅스 회로들을 포함한다. 시냅스 어레이는 전류 신호에 근거하여 시냅스 연산 신호를 생성한다. 발진기는 발진 신호를 생성한다. 발진 신호는 시냅스 연산 신호의 크기에 의존하는 출력 주파수를 갖는다.A neuromorphic computing device according to an embodiment of the present invention includes a pulse width modulator, a synapse array, an oscillator, a counter, and a compensator. The pulse width modulator may generate a pulse width modulated signal based on the input data value. The synapse array includes a plurality of synapse circuits each of which outputs a current signal by performing a multiplication operation of a pulse width modulated signal and a weight. The synapse array generates a synapse operation signal based on the current signal. The oscillator generates an oscillating signal. The oscillation signal has an output frequency that depends on the magnitude of the synapse operation signal.
카운터는 발진 신호에 포함된 펄스의 개수를 카운팅하여 카운팅 데이터를 생성한다. 보상기는 메모리를 포함한다. 메모리는 복수의 시냅스 회로들 중 전류 신호를 출력하는 시냅스 회로의 개수의 증가에 따라 선형적으로 증가하는 값을 갖는 기준 데이터를 저장한다. 보상기는 기준 데이터와 카운팅 데이터를 비교하여 카운팅 데이터 값을 보상할 수 있다.The counter counts the number of pulses included in the oscillation signal to generate counting data. The compensator includes a memory. The memory stores reference data having linearly increasing values as the number of synapse circuits outputting the current signal among the plurality of synapse circuits increases. The compensator can compensate the counting data value by comparing the reference data with the counting data.
본 발명의 실시예에 따른 뉴로모픽 연산 장치는 아날로그 방식으로 구현된 시냅스 어레이의 오류를 디지털 방식으로 보정하여 효과적으로 선형성을 확보할 수 있고, 저전력으로 보다 작은 면적을 갖도록 구현될 수 있다.The neuromotion computing apparatus according to the embodiment of the present invention can correct linear errors by digitally correcting faults of a synapse array implemented in an analog manner and realize a smaller area with low power.
도 1은 본 발명의 실시예에 따른 뉴로모픽 연산 장치의 블록도이다.
도 2는 본 발명의 실시예에 따른 펄스폭 변조기의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 발진기의 회로도이다.
도 4는 본 발명의 실시예에 따른 보상기의 블록도이다.
도 5는 보상 전 카운팅 데이터와 보상 후 출력 데이터의 변화를 나타내기 위한 그래프이다.
도 6은 본 발명의 실시예에 따른 뉴로모픽 연산 장치의 구동 방법의 순서도이다.
도 7은 본 발명의 실시예에 따른 출력 데이터를 생성하는 방법의 순서도이다.1 is a block diagram of a neuromorphic computing apparatus according to an embodiment of the present invention.
2 is a view for explaining the operation of the pulse width modulator according to the embodiment of the present invention.
3 is a circuit diagram of an oscillator according to an embodiment of the present invention.
4 is a block diagram of a compensator in accordance with an embodiment of the present invention.
5 is a graph for showing the change of the pre-compensation counting data and the post-compensation output data.
6 is a flowchart of a driving method of a neuromorphic computing apparatus according to an embodiment of the present invention.
7 is a flowchart of a method of generating output data according to an embodiment of the present invention.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.Hereinafter, embodiments of the present invention will be described in detail and in detail so that those skilled in the art can easily carry out the present invention.
도 1은 본 발명의 실시예에 따른 뉴로모픽 연산 장치의 블록도이다. 도 1을 참조하면, 뉴로모픽 연산 장치(100)는 직렬-병렬 변환기(110), 펄스폭 변조기(120), 시냅스 어레이(130), 발진기(140), 카운터(150), 보상기(160), 누적기(170), 결정기(180), 및 병렬-직렬 변환기(190)를 포함한다. 직렬-병렬 변환기(110), 펄스폭 변조기(120), 카운터(150), 보상기(160), 누적기(170), 결정기(180), 및 병렬-직렬 변환기(190)는 디지털 신호를 처리하는 구성 요소이다. 시냅스 어레이(130) 및 발진기(140)는 아날로그 신호를 처리하는 구성 요소이다.1 is a block diagram of a neuromorphic computing apparatus according to an embodiment of the present invention. 1, a
직렬-병렬 변환기(110)는 입력 데이터 및 가중치 데이터를 수신할 수 있다. 직렬-병렬 변환기(110)는 입력 데이터 및 가중치 데이터를 수신하기 위한 하나의 수신 단자를 포함할 수 있다. 직렬-병렬 변환기(110)는 시냅스 어레이(130)의 각 시냅스 회로에 신호를 제공하기 위한 복수의 출력 단자를 포함할 수 있다. 입력 데이터 및 가중치 데이터는 복수의 출력 단자에 제공된다. 직렬-병렬 변환기(110)는 입력 데이터 또는 가중치 데이터를 분할하여 복수의 출력 단자에 제공할 수 있다. 입력 데이터는 이미지 데이터일 수 있다.The serial-to-
펄스폭 변조기(120)는 직렬-병렬 변환기(110)로부터 입력 데이터 및 가중치 데이터를 수신할 수 있다. 펄스폭 변조기(120)는 직렬-병렬 변환기(110)의 복수의 출력 단자로부터 입력 데이터 및 가중치 데이터를 수신할 수 있다. 펄스폭 변조기(120)는 복수의 펄스폭 변조기를 포함할 수 있다. 예를 들어, 복수의 펄스폭 변조기 각각은 직렬-병렬 변환기(110)의 대응되는 출력 단자와 연결될 수 있다. 복수의 펄스폭 변조기 각각은 시냅스 어레이(130)의 대응되는 시냅스 회로와 연결될 수 있다.The
펄스폭 변조기(120)는 입력 데이터 값에 근거하여 펄스폭 변조 신호를 생성한다. 입력 데이터는 바이너리(binary) 데이터를 포함한다. 펄스폭 변조기(120)는 바이너리 데이터 값의 크기에 근거하여 펄스폭의 크기를 결정한다. 예를 들어, 입력 데이터 값의 크기가 255인 경우, 펄스폭의 크기가 크게 변조될 수 있다. 이 경우, 펄스폭 변조 신호가 제공되는 시간이 길 수 있다. 또한, 입력 데이터 값의 크기가 255보다 작은 경우, 펄스폭의 크기는 입력 데이터 값의 크기가 255인 경우의 펄스폭의 크기보다 작을 수 있다. 즉, 펄스폭 변조 신호가 제공되는 시간이 짧을 수 있다. 구체적인 내용은 도 2에서 후술된다.The
펄스폭 변조기(120)는 펄스폭 변조 신호를 시냅스 어레이(130)에 제공한다. 펄스폭 변조기(120)는 디지털 신호인 입력 데이터를 아날로그 신호인 펄스폭 변조 신호로 변환한다. 펄스폭 변조 신호는 입력 데이터의 값의 크기에 비례하는 펄스폭을 가질 수 있다. 펄스폭 변조기(120)는 가중치 데이터를 아날로그 신호로 변환할 수 있다. 펄스폭 변조기(120)는 가중치 데이터의 값의 크기에 비례하는 펄스폭을 가질 수 있다. The
시냅스 어레이(130)는 펄스폭 변조기(120)로부터 펄스폭 변조 신호 및 가중치 신호를 수신할 수 있다. 시냅스 어레이(130)는 복수의 행을 갖는 시냅스 회로들(131~13m)을 포함할 수 있다. 시냅스 어레이(130)는 행과 열 방향을 따라 매트릭스 형태로 배치될 수 있다. 예시적으로, 도 1에서의 시냅스 어레이(130)는 m개의 행을 갖고, n개의 열을 갖는 시냅스 회로들을 포함한다. 제1 행의 시냅스 회로들(131)은 행 방으로 배치되는 n개의 시냅스 회로들(131_1~131_n)을 포함할 수 있다. 제2 행의 시냅스 회로들(132)은 행 방향으로 배치되는 n개의 시냅스 회로들(132_1~132_n)을 포함할 수 있다.The
제1 행의 시냅스 회로들(131)은 펄스폭 변조기(120)로부터 제1 펄스폭 변조 신호 및 제1 가중치 신호를 수신할 수 있다. 예를 들어, 제1 행의 시냅스 회로들(131)에 포함된 시냅스 회로들(131_1~131_n) 각각은 제1 펄스폭 변조 신호를 수신할 수 있다. 제1 행의 시냅스 회로들(131)에 포함된 시냅스 회로들(131_1~131_n)은 제1 가중치 신호 중 하나의 비트에 대응하는 신호를 수신할 수 있다. 예를 들어, 제1 가중치 신호는 n비트의 가중치 데이터에 근거하여 생성될 수 있다. 제1 행의 시냅스 회로들(131)에 포함된 시냅스 회로들(131_1~131_n)은 해당 자리수에 대응되는 제1 가중치 신호를 수신할 수 있다.The
제1 행의 시냅스 회로들(131)에 포함된 시냅스 회로들(131_1~131_n) 각각은 제1 펄스폭 변조 신호 및 제1 가중치 신호 중 해당 자리수(비트)에 대응되는 가중치의 곱셈 연산을 수행할 수 있다. 시냅스 회로들(131_1~131_n) 각각은 자리수 별로 부분 적(partial product)을 수행할 수 있다. 예를 들어, 시냅스 회로들(131_1~131_n) 각각은 제1 펄스폭 변조 신호 및 가중치 신호를 수신하는 AND 게이트를 포함할 수 있다. 제1 펄스폭 변조 신호 및 가중치 신호가 모두 하이 레벨인 경우, 전류 신호가 출력될 수 있다.Each of the synapse circuits 131_1 to 131_n included in the
제2 행의 시냅스 회로들(132)은 펄스폭 변조기(120)로부터 제2 펄스폭 변조 신호 및 제2 가중치 신호를 수신할 수 있다. 제n 행의 시냅스 회로들(13n)은 펄스폭 변조기(120)로부터 제n 펄스폭 변조 신호 및 제n 가중치 신호를 수신할 수 있다. 제2 행 내지 제n 행의 시냅스 회로들(132~13n)은 제1 행의 시냅스 회로들(131)과 동일한 방식으로 수신된 펄스폭 변조 신호와 가중치 신호의 곱셈 연산을 수행할 수 있다. 다만, 상술한 시냅스 어레이(130)의 연산은 예시적인 것으로 이해될 것이다. 시냅스 어레이(130)는 다양한 방식으로 펄스폭 변조 신호와 가중치 신호의 곱셈 연산을 수행할 수 있다.The
시냅스 어레이(130)는 제1 내지 제n 커패시터들(Ca1~Can)을 더 포함할 수 있다. 제1 커패시터(Ca1)는 시냅스 어레이(130)에 포함된 시냅스 회로들 중 제1 열의 시냅스 회로들(131_1~13m_1)과 연결된다. 제2 커패시터(Ca2)는 시냅스 어레이(130)에 포함된 시냅스 회로들 중 제2 열의 시냅스 회로들(131_2~13m_2)과 연결된다. 시냅스 어레이(130)에 포함된 시냅스 회로들 중 동일한 열에 배치된 시냅스 회로들로부터 출력된 전류 신호들은 합산된다. 합산된 전류 신호들인 시냅스 연산 신호는 해당 열에 배치된 시냅스 회로들과 연결된 커패시터에 제공된다.The
예를 들어, 제1 열의 시냅스 회로들(131_1~13m_1)로부터 출력된 전류 신호들은 제1 시냅스 연산 신호로 합산된다. 제1 시냅스 연산 신호는 제1 커패시터(Ca1)에 제공된다. 제1 커패시터(Ca1)는 제1 시냅스 연산 신호의 크기가 클수록, 제1 커패시터(Ca1)의 충전 속도가 증가할 수 있다. 이상적인 경우, 일정한 크기의 전류 값을 갖는 제1 시냅스 연산 신호가 제1 커패시터(Ca1)에 제공될 때, 제1 커패시터(Ca1)의 전압 레벨은 선형적으로 증가한다. 제2 내지 제n 열의 시냅스 회로들(131_2~13m_2~131_n~13m_n)은 마찬가지로 제2 내지 제n 시냅스 연산 신호들을 생성할 수 있다. 제2 내지 제n 커패시터들(Ca2~Can)은 제2 내지 제n 시냅스 연산 신호들에 의하여 충전될 수 있다.For example, the current signals output from the synapse circuits 131_1 to 13m_1 in the first column are added to the first synapse operation signal. The first synapse operation signal is provided to the first capacitor Ca1. The greater the magnitude of the first synapse operation signal of the first capacitor Ca1, the greater the charging rate of the first capacitor Ca1. In an ideal case, when the first synapse operation signal having a constant current value is provided to the first capacitor Ca1, the voltage level of the first capacitor Ca1 linearly increases. The second to nth columns of synapse circuits 131_2 to 13m_2 to 131_n to 13m_n may similarly generate second to nth synapse operation signals. The second to n-th capacitors Ca2 to Can can be charged by the second to nth synapse operation signals.
발진기(140)는 제1 내지 제n 발진기들(141~14n)을 포함할 수 있다. 제1 내지 제n 발진기들(141~14n) 각각은 제1 내지 제n 커패시터들(Ca1~Can) 중 대응되는 커패시터와 연결될 수 있다. 발진기(140)는 시냅스 연산 신호에 근거하여 발진 신호를 생성한다. 제1 발진기(141)는 제1 발진 신호를 생성할 수 있고, 제2 발진기(142)는 제2 발진 신호를 생성할 수 있다. 제1 발진 신호는 제1 시냅스 연산 신호의 크기에 의존하는 제1 출력 주파수를 가질 수 있다. 제2 발진 신호는 제2 시냅스 연산 신호의 크기에 의존하는 제2 출력 주파수를 가질 수 있다. 시냅스 연산 신호의 크기가 클수록, 발진 신호의 출력 주파수는 증가한다. 구체적인 내용은 도 3에서 후술된다.The
카운터(150)는 제1 내지 제n 카운터들(151~15n)을 포함할 수 있다. 제1 내지 제n 카운터들(151~15n) 각각은 제1 내지 제n 발진기들(141~14n) 중 대응되는 발진기와 연결될 수 있다. 카운터(150)는 발진 신호에 포함된 펄스의 개수를 카운팅한다. 카운터(150)는 카운팅한 결과를 덧셈하여 카운팅 데이터를 생성할 수 있다. 카운팅 데이터는 디지털 신호일 수 있다. 제1 카운터(151)는 제1 발진 신호에 포함된 펄스의 개수를 카운팅하여 제1 카운팅 데이터를 생성할 수 있다. 제2 카운터(152)는 제2 발진 신호에 포함된 펄스의 개수를 카운팅하여 제2 카운팅 데이터를 생성할 수 있다.The
발진 신호의 출력 주파수가 클수록 발진 신호에 포함된 펄스의 개수는 증가한다. 발진 신호에 포함된 펄스의 개수가 많을수록, 카운팅 데이터의 값은 증가한다. 즉, 시냅스 연산 신호의 크기가 클수록, 카운팅 데이터의 값은 증가한다. 카운터(150)는 아날로그 신호인 발진 신호를 디지털 신호인 카운팅 데이터로 변환할 수 있다. 이상적인 경우, 시냅스 연산 신호의 크기의 증가에 따라, 발진 신호의 펄스의 개수가 선형적으로 증가한다. 이 때, 카운팅 데이터의 값은 시냅스 연산 신호의 크기의 증가에 따라 선형적으로 증가할 것이다.The larger the output frequency of the oscillation signal, the more the number of pulses included in the oscillation signal increases. The greater the number of pulses included in the oscillation signal, the greater the value of the counting data. That is, the larger the size of the synapse operation signal, the more the value of the counting data increases. The
보상기(160)는 제1 내지 제n 보상기들(161~16n)을 포함할 수 있다. 제1 내지 제n 보상기들(161~16n) 각각은 제1 내지 제n 카운터들(151~15n) 중 대응되는 카운터와 연결될 수 있다. 보상기(160)는 카운팅 데이터와 기준 데이터를 비교한다. 카운팅 데이터의 값과 기준 데이터의 값이 다른 경우, 보상기(160)는 카운팅 데이터의 값을 보상한다. 예를 들어, 제1 보상기(161)는 제1 카운터(151)로부터 제1 카운팅 데이터를 수신할 수 있다. 제1 카운팅 데이터의 값과 제1 기준 데이터의 값이 다른 경우, 제1 보상기(161)는 제1 기준 데이터의 값을 갖도록 제1 카운팅 데이터를 보상할 수 있다.The
기준 데이터는 보상기(160)에 미리 저장될 수 있다. 보상기(160)는 기준 데이터를 미리 저장하기 위한 메모리를 포함한다. 카운팅 데이터의 값에 따라 기준 데이터의 값은 다를 수 있다. 즉, 보상기(160)는 카운팅 데이터의 값에 따라 비교할 기준 데이터를 복수개 저장할 수 있다. 이러한 복수의 기준 데이터는 시냅스 어레이(130) 또는 발진기(140)의 구동 전압 레벨의 증가에 따라 선형적으로 증가하는 값을 가질 수 있다. 보상기(160)는 비 이상적인 원인에 의하여 비선형적인 값을 갖는 카운팅 데이터를 보정하여 선형적인 출력 데이터를 생성할 수 있다. 예를 들어, 비 이상적인 원인은 시냅스 어레이(130) 또는 발진기(140)와 같은 아날로그 회로에 의하여 유발될 수 있다.The reference data may be stored in the
카운팅 데이터에 대응되는 기준 데이터가 없는 경우, 보상기(160)는 기준 데이터가 존재하는 카운팅 데이터를 이용하여 출력 데이터를 생성할 수 있다. 예를 들어, 보상기(160)는 카운팅 데이터의 값과 가장 가까운 두 개의 이웃하는 카운팅 데이터를 추출할 수 있다. 두 개의 이웃하는 카운팅 데이터에 대응되는 두 개의 기준 데이터의 중간 값이 출력 데이터의 값으로 생성될 수 있다. 이 경우, 보상기(160)에 저장되는 기준 데이터의 양이 감소할 수 있다. 즉, 보상기(160)를 구현하기 위한 면적이 감소할 수 있다. 또한, 디지털 방식으로 선형성을 확보하므로, 아날로그 방식으로 오차를 보정하는 방식에 비하여 전력 소모가 감소될 수 있다.If there is no reference data corresponding to the counting data, the
누적기(170)는 제1 내지 제n 누적기들(171~17n)을 포함할 수 있다. 제1 내지 제n 누적기들(171~17n) 각각은 제1 내지 제n 보상기들(161~16n) 중 대응되는 보상기와 연결될 수 있다. 누적기(170)는 보상기(160)로부터 출력 데이터를 수신한다. 누적기(170)는 출력 데이터를 저장하기 위한 레지스터를 포함할 수 있다. 예를 들어, 저장된 출력 데이터와 새로운 데이터 사이의 덧셈 연산을 위하여, 누적기(170)는 출력 데이터를 저장할 수 있다. 누적기(170)는 새로운 데이터에 의하여 누산된 출력 데이터를 저장할 수 있다.The
누적기(170)는 쉬프터를 포함할 수 있다. 제1 내지 제n 누적기들(171~17n) 각각은 제1 내지 제n 쉬프터를 포함할 수 있다. 보상기(160)로부터 생성된 제1 내지 제n 출력 데이터는 서로 다른 자리수에 대응되는 값을 나타낼 수 있다. 예를 들어, 제1 출력 데이터는 첫번째 자리수의 가중치에 대한 부분 적을 합한 결과일 수 있다. 따라서, 제1 쉬프터는 제1 출력 데이터에 2n이 곱해진 결과와 같도록 제1 출력 데이터에 대한 쉬프팅 동작을 수행할 수 있다. 마찬가지로, 제2 쉬프터는 제2 출력 데이터에 2n-1이 곱해진 결과와 같도록 제2 출력 데이터에 대한 쉬프팅 동작을 수행할 수 있다.The
결정기(180)는 제1 내지 제n 결정기들(181~18n)을 포함할 수 있다. 제1 내지 제n 결정기들(181~18n) 각각은 제1 내지 제n 누적기들(171~17n) 중 대응되는 누적기와 연결될 수 있다. 결정기(180)는 누적기(170)로부터 누산된 출력 데이터를 수신할 수 있다. 결정기(180)는 누산된 출력 데이터에 활성화 함수를 적용하여 결정 데이터를 생성할 수 있다. 예를 들어, 활성화 함수는 시그모이드(sigmoid) 함수일 수 있다. 활성화 함수에 근거하여 역치 이상(또는 초과)의 누적된 출력 데이터는 증폭되고, 역치 미만(또는 이하)의 누적된 출력 데이터는 감쇄될 수 있다.The
병렬-직렬 변환기(190)는 제1 내지 제n 결정기들(181~18n)로부터 결정 데이터를 수신할 수 있다. 예를 들어, 병렬-직렬 변환기(190)는 제1 내지 제n 결정기들(181~18n)로부터 제1 내지 제n 결정 데이터를 수신할 수 있다. 병렬-직렬 변환기(190)는 제1 내지 제n 결정 데이터에 근거하여 하나의 데이터(OUTPUT)를 생성하여 출력할 수 있다. 예를 들어, 병렬-직렬 변환기(190)는 하나의 데이터(OUTPUT)를 출력하기 위하여 제1 내지 제n 결정 데이터를 합산할 수 있다. 생성된 데이터는 다른 뉴로모픽 연산 장치에 제공될 수 있다.The parallel-to-serial converter 190 may receive the decision data from the first to the n-
도 2는 본 발명의 실시예에 따른 펄스폭 변조기의 동작을 설명하기 위한 도면이다. 도 2의 펄스폭 변조기(120)는 도 1의 펄스폭 변조기(120)일 수 있다. 도 2를 참조하면, 펄스폭 변조기(120)는 입력 데이터(INPUT)를 입력 받는다. 입력 데이터(INPUT)는 예시적으로 8비트의 이진 데이터인 것으로 도시되었다. 펄스폭 변조기(120)는 입력 데이터(INPUT)의 값에 근거하여 펄스폭 변조 신호(PWM)를 생성한다. 2 is a view for explaining the operation of the pulse width modulator according to the embodiment of the present invention. The
입력 데이터(INPUT)의 값의 크기가 255인 경우, 펄스폭 변조 신호(PWM)의 생성 사이클 동안, 펄스폭 변조 신호(PWM)의 크기는 하이 레벨을 유지할 수 있다. 입력 데이터(INPUT)의 값의 크기가 254인 경우, 펄스폭 변조 신호(PWM)는 하이 레벨을 유지하다가 마지막 비트에 대응되는 구간에서 로우 레벨로 변경될 수 있다. 입력 데이터(INPUT)의 값의 크기가 128인 경우, 펄스폭 변조 신호(PWM)는 첫번째 비트에 대응되는 구간에서 하이 레벨을 유지하고, 나머지 비트에 대응되는 구간에서 로우 레벨로 변경될 수 있다. 입력 데이터(INPUT)의 값의 크기가 1인 경우, 펄스폭 변조 신호(PWM)는 마지막 비트에 대응되는 구간에서 하이 레벨을 가질 수 있다.When the magnitude of the value of the input data INPUT is 255, the magnitude of the pulse width modulation signal PWM can be maintained at a high level during the generation cycle of the pulse width modulation signal PWM. When the value of the input data INPUT is 254, the pulse width modulation signal PWM maintains the high level and can be changed to the low level in the interval corresponding to the last bit. When the value of the input data INPUT is 128, the pulse width modulation signal PWM maintains the high level in the interval corresponding to the first bit and can be changed to the low level in the interval corresponding to the remaining bits. When the magnitude of the value of the input data INPUT is 1, the pulse width modulation signal PWM may have a high level in a section corresponding to the last bit.
입력 데이터(INPUT)에서 각 비트에 대응되는 자리수에 따라, 펄스폭 변조 신호(PWM)의 생성 사이클에 할당되는 시간은 다를 수 있다. 예를 들어, 입력 데이터(INPUT)의 첫번째 비트 값이 1인 경우, 펄스폭 변조 신호(PWM)의 생성 사이클의 절반의 시간 동안 하이 레벨이 유지될 수 있다. 입력 데이터(INPUT)의 두번째 비트 값이 1인 경우, 펄스폭 변조 신호(PWM)의 생성 사이클의 1/4 시간 동안 하이 레벨이 유지될 수 있다. 펄스폭 변조 신호(PWM)가 하이 레벨을 갖는 시간은 입력 데이터(INPUT) 값의 크기에 비례할 수 있다. 펄스폭 변조 신호(PWM)가 하이 레벨을 갖는 시간이 길수록, 시냅스 연산 신호의 적분 값은 증가할 수 있다. 이 경우, 발진 신호의 출력 주파수가 증가하여 출력 데이터 값이 증가한다.The time allocated to the generation cycle of the pulse width modulation signal PWM may be different depending on the number of digits corresponding to each bit in the input data INPUT. For example, when the first bit value of the input data INPUT is 1, a high level can be maintained for half the time of the generation cycle of the pulse width modulation signal PWM. When the second bit value of the input data INPUT is 1, the high level can be maintained for 1/4 hour of the generation cycle of the pulse width modulation signal PWM. The time at which the pulse width modulation signal PWM is at the high level may be proportional to the magnitude of the input data INPUT value. The longer the time that the pulse width modulation signal PWM is at the high level, the more the integral value of the synapse operation signal can increase. In this case, the output frequency of the oscillation signal increases and the output data value increases.
도 3은 본 발명의 실시예에 따른 발진기의 회로도이다. 도 3의 발진기(141)는 도 1의 제1 발진기(141)일 수 있다. 또한, 발진기(141)의 구성은 도 1의 제2 내지 제n 발진기들(142~14n)의 구성과 동일할 수 있다. 도 3을 참조하면, 발진기(141)는 제1 내지 제6 인버터들(Inv1~Inv6), 트랜지스터(TR1), 및 커패시터(Ca1)를 포함할 수 있다. 커패시터(Ca1)는 도 1의 제1 커패시터(Ca1)일 수 있다. 발진기(141)의 출력 단자는 트랜지스터(TR1)의 게이트 단자와 연결된다. 초기 출력 값은 0으로 가정한다.3 is a circuit diagram of an oscillator according to an embodiment of the present invention. The
발진기(141)는 시냅스 연산 신호(Isyn)를 수신한다. 시냅스 연산 신호(Isyn)는 전류 신호일 수 있다. 커패시터(Ca1)의 일단자는 시냅스 연산 신호(Isyn)를 수신하고 타단자는 접지될 수 있다. 커패시터(Ca1)에 시냅스 연산 신호(Isyn)의 적분 값에 비례하는 전압이 형성될 수 있다. 즉, 커패시터(Ca1)는 시냅스 연산 신호(Isyn)에 의하여 충전된다. 커패시터(Ca1)의 일단자는 제1 인버터(Inv1)의 입력 단자에 연결된다. 제1 내지 제6 인버터들(Inv1~Inv6)은 직렬로 연결된다.The
커패시터(Ca1) 양단의 전압이 제1 내지 제6 인버터들(Inv1~Inv6)을 구동하기 위한 문턱 전압을 넘는 경우, 제1 내지 제6 인버터들(Inv1~Inv6)이 동작한다. 이 때, 제1 내지 제6 인버터들(Inv1~Inv6)의 개수가 짝수이므로, 제6 인버터(Inv6)는 게이트 전압을 출력할 수 있다. 제6 인버터(Inv6)의 출력은 1의 디지털 값일 수 있다. 제6 인버터(Inv6)의 출력 단자는 트랜지스터(TR1)의 제어 단자에 연결된다. 커패시터(Ca1)의 전압이 문턱 전압을 넘는 경우, 트랜지스터(TR1)의 제어 단자에 게이트 전압이 제공될 수 있다.When the voltage across the capacitor Ca1 exceeds the threshold voltage for driving the first to sixth inverters Inv1 to Inv6, the first to sixth inverters Inv1 to Inv6 operate. At this time, since the number of the first to sixth inverters (Inv1 to Inv6) is an even number, the sixth inverter (Inv6) can output the gate voltage. The output of the sixth inverter (Inv6) may be a digital value of 1. The output terminal of the sixth inverter Inv6 is connected to the control terminal of the transistor TR1. When the voltage of the capacitor Ca1 exceeds the threshold voltage, the gate voltage can be provided to the control terminal of the transistor TR1.
트랜지스터(TR1)의 일단자는 커패시터(Ca1)의 일단자 및 제1 인버터(Inv1)의 입력 단자에 연결된다. 트랜지스터(TR1)의 타단자는 접지될 수 있다. 트랜지스터(TR1)는 NMOS일 수 있다. 트랜지스터(TR1)에 게이트 전압이 제공되는 경우, 커패시터(Ca1)는 방전된다. 이 때, 커패시터(Ca1)의 전압이 문턱 전압을 넘지 않으므로, 제1 내지 제6 인버터들(Inv1~Inv6)이 동작하지 않는다. 제6 인버터(Inv6)는 게이트 전압을 출력하지 않을 수 있다. 커패시터(Ca1)가 충전 및 방전을 반복하면서, 발진기(141)의 출력 단자는 출력 주파수를 갖는 발진 신호를 생성한다.One terminal of the transistor TR1 is connected to one terminal of the capacitor Ca1 and an input terminal of the first inverter Inv1. The other terminal of the transistor TR1 may be grounded. The transistor TR1 may be an NMOS. When the gate voltage is supplied to the transistor TR1, the capacitor Ca1 is discharged. At this time, since the voltage of the capacitor Ca1 does not exceed the threshold voltage, the first to sixth inverters Inv1 to Inv6 do not operate. The sixth inverter Inv6 may not output the gate voltage. The output terminal of the
시냅스 연산 신호(Isyn)의 크기가 클수록, 커패시터(Ca1)의 충전 속도가 증가하므로, 출력 주파수가 증가한다. 이상적인 경우, 시냅스 연산 신호(Isyn)의 크기의 증가에 따라, 출력 주파수는 선형적으로 증가한다. 다만, 제1 내지 제6 인버터들(Inv1~Inv6)의 지연 시간 또는 커패시터(Ca1)의 방전 시간에 의하여, 시냅스 연산 신호(Isyn)의 크기에 따라, 출력 주파수는 비선형적으로 변화할 수 있다. 또한, 발진기(141)의 구동 전압의 크기에 따라 출력 주파수는 비선형적으로 변화할 수 있다. 도 1의 보상기(160)는 발진기(141) 또는 시냅스 어레이(130)의 특성에 따른 비선형적인 출력을 보상할 수 있다.As the magnitude of the synapse operation signal Isyn increases, the charging rate of the capacitor Ca1 increases, and the output frequency increases. In an ideal case, as the magnitude of the synapse operation signal Isyn increases, the output frequency linearly increases. However, depending on the delay time of the first to sixth inverters Inv1 to Inv6 or the discharge time of the capacitor Ca1, the output frequency may vary nonlinearly according to the magnitude of the synapse operation signal Isyn. Also, the output frequency may vary non-linearly according to the magnitude of the driving voltage of the
도 4는 본 발명의 실시예에 따른 보상기의 블록도이다. 도 4의 보상기(200)는 도 1의 제1 내지 제n 보상기들(161~16n) 중 어느 하나일 수 있다. 도 4를 참조하면, 보상기(200)는 메모리(210), 비교기(220), 데이터 보상기(230), 컨트롤러(240), 어드레스 생성기(250)를 포함한다. 도 4의 구성 요소들은 비선형적인 데이터를 선형적으로 보상하기 위한 일 실시예로 이해될 것이고, 메모리(210)에 저장된 기준 데이터(Ref)와 카운팅 데이터(CDA)를 비교하여 그 차이를 보상할 수 있는 다양한 구성이 가능할 것이다.4 is a block diagram of a compensator in accordance with an embodiment of the present invention. The
메모리(210)는 기준 데이터(Ref)를 저장한다. 기준 데이터(Ref)는 시냅스 어레이 또는 발진기의 구동 전압의 증가에 따라 선형적으로 증가하는 데이터 값을 가질 수 있다. 기준 데이터(Ref)는 시냅스 연산 신호(Isyn)의 생성에 관여하는 시냅스 회로들의 개수의 증가에 따라 선형적으로 증가하는 데이터 값을 가질 수 있다. 기준 데이터(Ref)는 카운팅 데이터(CDA)가 보상기(200)에 제공되기 전에 미리 메모리(210)에 저장된다. 기준 데이터(Ref)는 선형적으로 증가 또는 감소하는 복수 개의 데이터를 포함할 수 있다. 메모리(210)는 비교기(220)에 제공되는 카운팅 데이터(CDA)의 값에 대응되는 기준 데이터를 비교기(220)에 출력할 수 있다.The
비교기(220)는 도 1의 카운터(150)로부터 카운팅 데이터(CDA)를 수신한다. 카운팅 데이터(CDA)는 도 1의 발진기(140)에 의하여 생성된 발진 신호의 펄스의 개수를 카운터(150)가 카운팅하여 생성된다. 발진기(140)에 포함된 인버터들의 지연 시간 또는 커패시터의 방전 시간 등에 의하여 카운팅 데이터(CDA)는 비선형적인 값을 가질 수 있다. 비교기(220)는 제1 비교기(221) 및 제2 비교기(222)를 포함할 수 있다.The
제1 비교기(221)는 도 1의 카운터(150)로부터 수신한 카운팅 데이터(CDA)와 메모리(210)로부터 수신한 기준 데이터(Ref)를 비교한다. 제1 비교기(221)는 수신한 카운팅 데이터(CDA)의 값에 대응되는 기준 데이터(Ref)를 메모리(210)로부터 읽을 수 있다. 가운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 동일한 경우, 제1 비교기(221)는 카운팅 데이터(CDA) 또는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 이 때, 출력 데이터(ODA)는 도 1의 누적기(170)에 제공될 수 있다.The
제2 비교기(222)는 카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 서로 다른 경우, 카운팅 데이터(CDA)를 수신할 수 있다. 또한, 제2 비교기(222)는 기준 데이터(Ref)를 수신할 수 있다. 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 존재 여부를 판단할 수 있다. 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하는 경우, 제2 비교기(222)는 카운팅 데이터(CDA)의 값을 보상한다. 제2 비교기(222)는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. The
제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하지 않는 경우, 데이터 보상기(230)로부터 보상 데이터(ITP)를 수신할 수 있다. 예를 들어, 제2 비교기(222)가 기준 데이터(Ref)를 수신하지 못하는 경우, 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하지 않는다고 판단할 수 있다. 이 때, 비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)의 값과 가장 가까운 두 개의 카운팅 데이터에 대응되는 기준 데이터를 수신할 수 있다. The
비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)보다 작은 값을 갖는 카운팅 데이터 중 가장 인접한 카운팅 데이터에 대응하는 기준 데이터를 수신할 수 있다. 또한, 비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)보다 큰 값을 갖는 카운팅 데이터 중 가장 인접한 카운팅 데이터에 대응하는 기준 데이터를 수신할 수 있다. 비교기(220)는 이러한 두 개의 기준 데이터를 데이터 보상기(230)에 제공할 수 있다.The
데이터 보상기(230)는 비교기(220)로부터 수신한 두 개의 기준 데이터에 근거하여 보상 데이터(ITP)를 생성할 수 있다. 예를 들어, 데이터 보상기(230)는 비교기(220)로부터 수신한 두 개의 기준 데이터의 중간 값을 갖는 보상 데이터(ITP)를 생성할 수 있다. 다만, 이에 제한되지 않고, 카운팅 데이터와 인접한 두 개의 카운팅 데이터 사이의 거리 비율에 근거하여 보상 데이터(ITP)의 값을 산출할 수 있다. 즉, 두 개의 기준 데이터 사이의 값 중 선형성을 확보할 수 있는 값을 갖는 보상 데이터(ITP)가 생성될 수 있다. The data compensator 230 may generate the compensation data ITP based on the two reference data received from the
데이터 보상기(230)가 생성한 보상 데이터(ITP)에 근거하여 비교기(220)는 출력 데이터(ODA)를 생성할 수 있다. 카운팅 데이터(CDA)에 대응되는 기준 데이터가 없는 경우, 제2 비교기(222)는 보상 데이터(ITP)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 데이터 보상기(230)를 이용함으로써, 메모리(210)에 저장되는 기준 데이터(Ref)의 양이 감소할 수 있다. 따라서, 보상기(200)를 구현하기 위한 면적이 감소할 수 있다.The
컨트롤러(240)는 보상기(200)의 구성 요소들을 제어할 수 있다. 예를 들어, 비교기(220)는 컨트롤러(240)의 제어에 따라, 카운팅 데이터(CDA)를 수신하고, 메모리(210)로부터 수신한 기준 데이터(Ref)를 카운팅 데이터(CDA)와 비교할 수 있다. 비교기(220)는 컨트롤러(240)의 제어에 따라, 출력 데이터(ODA)를 생성할 수 있다. 데이터 보상기(230)는 컨트롤러(240)의 제어에 따라, 보상 데이터(ITP)를 생성하여 비교기(220)에 제공할 수 있다.The
어드레스 생성기(250)는 컨트롤러(240)의 제어에 따라, 메모리(210)에 저장되는 기준 데이터(Ref)의 어드레스 정보를 생성한다. 메모리(210)는 어드레스 정보에 근거하여 기준 데이터(Ref)를 해당 어드레스에 저장할 수 있다. 비교기(220)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 어드레스 정보를 이용하여 기준 데이터(Ref)에 대한 읽기 동작을 수행할 수 있다.The
도 5는 보상 전 카운팅 데이터와 보상 후 출력 데이터의 변화를 나타내기 위한 그래프이다. 도 5를 참조하면, 가로축은 시냅스의 개수로 정의된다. 시냅스의 개수는 도 1의 시냅스 어레이(130)에 포함된 시냅스 회로들 중 출력 주파수를 생성하는 발진기에 전기적으로 연결되어 출력 신호를 제공한 시냅스 회로들의 개수를 의미한다. 예를 들어, 시냅스의 개수는 도 3의 발진기(141)에 제공되는 시냅스 연산 신호(Isyn)의 생성에 관여한 시냅스 회로들의 개수일 수 있다. 세로축은 GHz 단위의 출력 주파수로 정의된다.5 is a graph for showing the change of the pre-compensation counting data and the post-compensation output data. Referring to Figure 5, the horizontal axis is defined as the number of synapses. The number of synapses refers to the number of synaptic circuits that are electrically connected to the oscillator generating the output frequency among the synapse circuits included in the
보상 전 출력 주파수는 도 1의 발진기(140)에 의하여 생성된 발진 신호의 주파수를 나타낸다. 시냅스의 개수가 100개인 경우, 보상 전 출력 주파수는 0.526GHz를 나타낸다. 시냅스의 개수가 200개인 경우, 보상 전 출력 주파수는 0.864GHz를 나타낸다. 시냅스의 개수가 300개인 경우, 보상 전 출력 주파수는 1.1GHz를 나타낸다. 시냅스의 개수가 400개인 경우, 보상 전 출력 주파수는 1.25GHz를 나타낸다. 시냅스의 개수가 500개인 경우, 보상 전 출력 주파수는 1.3GHz를 나타낸다. 시냅스의 개수가 600개인 경우, 보상 전 출력 주파수는 1.33GHz를 나타낸다. 시냅스의 개수에 따른 보상 전 출력 주파수의 변화는 시냅스의 개수에 따른 카운팅 데이터의 값의 변화를 나타낸다. 즉, 시냅스의 개수의 증가에 따라 비선형적으로 카운팅 데이터의 값이 증가한다.The pre-compensation output frequency represents the frequency of the oscillation signal generated by the
보상 후 출력 주파수는 도 1의 보상기(160) 또는 도 4의 보상기(200)에 의하여 출력 데이터가 생성된 경우, 보상기 없이 출력 데이터 값을 갖기 위한 발진 신호의 주파수를 나타낸다. 시냅스의 개수가 100개인 경우, 보상 후 출력 주파수는 0.1GHz를 나타낸다. 시냅스의 개수가 200개인 경우, 보상 후 출력 주파수는 0.37GHz를 나타낸다. 시냅스의 개수가 300개인 경우, 보상 후 출력 주파수는 0.6GHz를 나타낸다. 시냅스의 개수가 400개인 경우, 보상 후 출력 주파수는 0.81GHz를 나타낸다. 시냅스의 개수가 500개인 경우, 보상 후 출력 주파수는 1.05GHz를 나타낸다. 시냅스의 개수가 600개인 경우, 보상 후 출력 주파수는 1.33GHz를 나타낸다. 시냅스의 개수에 따른 보상 후 출력 주파수의 변화는 시냅스의 개수에 따른 출력 데이터 값의 변화를 나타낸다. 즉, 시냅스의 개수의 증가에 따라 선형적으로 출력 데이터의 값이 증가한다. 이하, 출력 데이터의 값은 도 4의 보상기(200)의 도면 부호를 이용하여 설명된다. The output frequency after compensation represents the frequency of the oscillation signal for obtaining the output data value without the compensator when the output data is generated by the
카운팅 데이터(CDA)는 보상 전 출력 주파수, 즉 발진 신호의 주파수에 의한 펄스 개수를 카운팅하여 생성된다. 출력 주파수는 발진기에 포함된 커패시터 양단의 전압 또는 발진기에 포함된 트랜지스터의 게이트 전압에 의존할 수 있다. 커패시터 양단의 전압 또는 게이트 전압은 시냅스 연산 신호의 크기에 의존할 수 있다. 시냅스 연산 신호의 크기는 시냅스 연산 신호의 생성에 관여하는 시냅스 회로들의 개수에 의존할 수 있다. The counting data CDA is generated by counting the number of pulses according to the output frequency before the compensation, that is, the frequency of the oscillation signal. The output frequency may depend on either the voltage across the capacitor included in the oscillator or the gate voltage of the transistor included in the oscillator. The voltage across the capacitor or the gate voltage may depend on the magnitude of the synapse operational signal. The size of the synapse signal may depend on the number of synapse circuits involved in generating the synapse signal.
메모리(210)는 보상 후 출력 주파수로 정의된 그래프와 같이 선형성을 갖도록 보상된 값을 기준 데이터(Ref)로 저장할 수 있다. 예를 들어, 도 5의 그래프를 참조하면, 발진 신호의 출력 주파수가 1.33GHz인 경우, 선형성을 확보하기 위한 출력 주파수의 보상이 불필요하다. 즉, 카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값은 동일하므로, 제1 비교기(221)는 카운팅 데이터(CDA)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 발진 신호의 출력 주파수가 1.3GHz인 경우, 선형성을 확보하기 위하여 출력 주파수는 1.3GHz보다 낮을 것이 요구된다. 즉, 카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값은 다르고, 제2 비교기(222)는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. The
발진 신호의 출력 주파수가 1.25GHz와 1.3GHz 사이인 경우, 카운팅 데이터(CDA)의 값에 대응되는 기준 데이터(Ref)가 메모리(210)에 저장되지 않을 수 있다. 따라서, 데이터 보상기(230)는 발진 신호의 출력 주파수가 1.25GHz일 때의 카운팅 데이터에 대응되는 기준 데이터와 발진 신호의 출력 주파수가 1.3GHz일 때의 카운팅 데이터에 대응되는 기준 데이터를 수신할 수 있다. 비교기(220)는 두 개의 기준 데이터의 중간 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 따라서, 뉴로모픽 연산 장치의 선형성이 확보될 수 있다.The reference data Ref corresponding to the value of the counting data CDA may not be stored in the
도 6은 본 발명의 실시예에 따른 뉴로모픽 연산 장치의 구동 방법의 순서도이다. 도 6에 따른 뉴로모픽 연산 장치의 구동 방법은 도 1의 뉴로모픽 연산 장치(100)에서 수행될 수 있다. 설명의 편이상, 뉴로모픽 연산 장치의 구동 방법은 도 1의 도면 부호를 참조하여 설명된다. S110 단계에서, 직렬-병렬 변환기(110)에 입력 데이터 및 가중치 데이터가 입력될 수 있다. 직렬-병렬 변환기(110)는 입력 데이터 및 가중치 데이터를 펄스폭 변조기(120)에 제공할 수 있다.6 is a flowchart of a driving method of a neuromorphic computing apparatus according to an embodiment of the present invention. The driving method of the neuromorphic computing apparatus according to FIG. 6 can be performed in the
S120 단계에서, 펄스폭 변조기(120)는 펄스폭 변조 신호를 생성한다. 펄스폭 변조기(120)는 입력 데이터의 값의 크기에 따라 펄스폭 변조 신호의 펄스폭을 결정할 수 있다. 입력 데이터의 값의 크기가 클수록, 펄스폭 변조 신호의 펄스폭은 증가한다. 펄스폭 변조기(120)는 펄스폭 변조 신호를 시냅스 어레이(130)에 제공한다. S130 단계에서, 시냅스 어레이(130)는 시냅스 연산 신호를 생성한다. 시냅스 어레이(130)는 펄스폭 변조 신호 및 가중치 신호를 곱셈 연산에 근거하여 전류 신호를 생성한다. 시냅스 어레이(130)는 매트릭스 형태로 배치된 시냅스 회로들을 포함한다. 열 방향으로 배치되는 시냅스 회로들이 생성하는 전류 신호는 합산된다. 합산된 전류 신호에 의하여 시냅스 연산 신호가 생성된다.In step S120, the
S140 단계에서, 카운터(150)는 시냅스 연산 신호에 근거한 출력 펄스의 개수를 카운팅한다. 발진기(140)는 시냅스 연산 신호를 수신한다. 발진기(140)는 시냅스 연산 신호에 근거하여 발진 신호를 생성한다. 발진 신호는 출력 주파수를 갖고, 출력 주파수는 시냅스 연산 신호의 크기에 의존한다. 즉, 시냅스 연산 신호의 크기가 클수록, 발진 신호의 출력 주파수는 증가한다. 카운터(150)는 출력 주파수에 의하여 형성되는 펄스의 개수를 카운팅한다.In step S140, the
S150 단계에서, 카운터(150)는 카운팅 데이터를 생성한다. 카운팅 데이터는 출력 주파수에 의하여 형성되는 펄스의 개수에 근거한 데이터 값을 가질 수 있다. 카운터(150)는 생성된 카운팅 데이터를 보상기(160)에 제공한다. S160 단계에서, 보상기(160)는 출력 데이터를 생성한다. 카운팅 데이터는 시냅스 어레이(130) 또는 발진기(140)의 구동 전압의 변화에 따라 비선형적으로 증가 또는 감소할 수 있다. 보상기(160)는 카운팅 데이터를 보상하여 선형적으로 증가 또는 감소하는 출력 데이터를 생성한다.In step S150, the
S170 단계에서, 누적기(170) 또는 결정기(180)는 출력 데이터를 처리한다. 누적기(170)는 출력 데이터를 수신하고, 추가적으로 제공되는 출력 데이터와 덧셈 연산을 수행하여 누산된 출력 데이터를 생성할 수 있다. 결정기(180)는 누산된 출력 데이터에 활성화 함수를 적용하여 결정 데이터를 생성할 수 있다.In step S170, the
도 7은 본 발명의 실시예에 따른 출력 데이터를 생성하는 방법을 구체화하는 순서도이다. 도 7의 출력 데이터를 생성하는 방법은 도 6의 S160 단계를 구체화한 것으로 볼 수 있다. 도 7에 따른 출력 데이터를 생성하는 방법은 도 1의 보상기(160) 또는 도 4의 보상기(200)에서 수행될 수 있다. 설명의 편의상, 출력 데이터를 생성하는 방법은 도 4의 도면 부호를 참조하여 설명된다. S161 단계에서, 제1 비교기(221)는 카운팅 데이터(CDA) 및 기준 데이터(Ref)를 비교할 수 있다. 제1 비교기(221)는 메모리(210)로부터 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)를 수신할 수 있다.FIG. 7 is a flowchart illustrating a method for generating output data according to an embodiment of the present invention. The method of generating the output data of FIG. 7 can be seen as embodying step S160 of FIG. The method of generating output data according to FIG. 7 can be performed in the
카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 동일한 경우, S162 단계가 진행된다. S162 단계에서, 제1 비교기(221)는 카운팅 데이터(CDA)를 출력 데이터(ODA)로 출력할 수 있다. 카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 서로 다른 경우, S163 단계가 진행된다. S163 단계에서, 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 존재 여부를 판단할 수 있다. 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하는 경우, S164 단계가 진행된다. 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하지 않는 경우, S165 단계가 진행된다.If the value of the counting data CDA is equal to the value of the reference data Ref, the process proceeds to step S162. In step S162, the
S164 단계에서, 제2 비교기(222)는 기준 데이터(Ref)를 이용하여 카운팅 데이터(CDA)를 보상할 수 있다. 즉, 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 생성할 수 있다. S166 단계에서, 제2 비교기(222)는 보상된 카운팅 데이터, 즉 출력 데이터(ODA)를 출력할 수 있다.In step S164, the
S165 단계에서, 제2 비교기(222) 및 데이터 보상기(230)는 중간 값을 이용하여 카운터 데이터를 보상할 수 있다. 제2 비교기(222)는 메모리(210)로부터 수신된 카운팅 데이터(CDA)에 인접하는 두 개의 카운팅 데이터에 대응되는 두 개의 기준 데이터를 수신할 수 있다. 데이터 보상기(230)는 두 개의 기준 데이터의 중간 값을 갖는 보상 데이터(ITP)를 생성할 수 있다. 제2 비교기(222)는 보상 데이터(IPT)의 값을 갖는 출력 데이터(ODA)를 생성할 수 있다. S166 단계에서, 제2 비교기(222)는 보상된 카운팅 데이터, 즉 출력 데이터(ODA)를 출력할 수 있다.In step S165, the
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.The above description is a concrete example for carrying out the present invention. The present invention includes not only the above-described embodiments, but also embodiments that can be simply modified or easily changed. In addition, the present invention includes techniques that can be easily modified by using the above-described embodiments.
100: 뉴로모픽 연산 장치
110: 직렬-병렬 변환기
120: 펄스폭 변조기
130: 시냅스 어레이
140: 발진기
150: 카운터
160, 200: 보상기
210: 메모리100: New Lomographic computing device 110: Serial-to-parallel converter
120: pulse width modulator 130: synapse array
140: Oscillator 150: Counter
160, 200: compensator 210: memory
Claims (1)
각각이 상기 펄스폭 변조 신호 및 가중치 신호의 곱셈 연산을 수행하여 전류 신호를 출력하는 복수의 시냅스 회로들을 포함하고, 상기 전류 신호에 근거하여 시냅스 연산 신호를 생성하는 시냅스 어레이;
상기 시냅스 연산 신호의 크기에 의존하는 출력 주파수를 갖는 발진 신호를 생성하는 발진기;
상기 발진 신호에 포함된 펄스의 개수를 카운팅하여 카운팅 데이터를 생성하는 카운터; 및
상기 복수의 시냅스 회로들 중 상기 전류 신호를 출력하는 시냅스 회로의 개수의 증가에 따라 선형적으로 증가하는 값을 갖는 기준 데이터와 상기 카운팅 데이터를 비교하여 상기 카운팅 데이터 값을 보상하는 보상기를 포함하는 뉴로모픽 연산 장치.A pulse width modulator for generating a pulse width modulated signal based on the value of the input data;
A synapse array including a plurality of synapse circuits each of which performs a multiplication operation of the pulse width modulation signal and the weight signal to output a current signal, the synapse array generating a synapse operation signal based on the current signal;
An oscillator for generating an oscillation signal having an output frequency depending on a magnitude of the synapse operation signal;
A counter for counting the number of pulses included in the oscillation signal to generate counting data; And
And a compensator for compensating the counting data by comparing the reference data having a linearly increasing value with an increase in the number of synapse circuits outputting the current signal among the plurality of synapse circuits, Calculator for Lomography.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170088008A KR102420362B1 (en) | 2017-07-11 | 2017-07-11 | Neuromorphic arithmetic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170088008A KR102420362B1 (en) | 2017-07-11 | 2017-07-11 | Neuromorphic arithmetic device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190007143A true KR20190007143A (en) | 2019-01-22 |
KR102420362B1 KR102420362B1 (en) | 2022-07-15 |
Family
ID=65320578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170088008A KR102420362B1 (en) | 2017-07-11 | 2017-07-11 | Neuromorphic arithmetic device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102420362B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633486A (en) * | 2019-09-24 | 2021-04-09 | 旺宏电子股份有限公司 | Data sensing device and data sensing method thereof |
KR20210120440A (en) * | 2020-03-26 | 2021-10-07 | 광운대학교 산학협력단 | Neural network circuit using modified input signal |
KR20220168681A (en) | 2021-06-17 | 2022-12-26 | 서강대학교산학협력단 | Neuromorphic computing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379110A1 (en) * | 2015-06-29 | 2016-12-29 | International Business Machines Corporation | Neuromorphic processing devices |
-
2017
- 2017-07-11 KR KR1020170088008A patent/KR102420362B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160379110A1 (en) * | 2015-06-29 | 2016-12-29 | International Business Machines Corporation | Neuromorphic processing devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633486A (en) * | 2019-09-24 | 2021-04-09 | 旺宏电子股份有限公司 | Data sensing device and data sensing method thereof |
CN112633486B (en) * | 2019-09-24 | 2024-04-16 | 旺宏电子股份有限公司 | Data sensing device and data sensing method thereof |
KR20210120440A (en) * | 2020-03-26 | 2021-10-07 | 광운대학교 산학협력단 | Neural network circuit using modified input signal |
KR20220168681A (en) | 2021-06-17 | 2022-12-26 | 서강대학교산학협력단 | Neuromorphic computing system |
Also Published As
Publication number | Publication date |
---|---|
KR102420362B1 (en) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615165B2 (en) | Systems and methods for mapping matrix calculations to a matrix multiply accelerator | |
KR102314300B1 (en) | Neuromorphic arithmetic device | |
KR102653822B1 (en) | Mixed signal computing system and method | |
US10438116B2 (en) | Neuromorphic arithmetic device | |
KR102420362B1 (en) | Neuromorphic arithmetic device | |
KR102313796B1 (en) | Neuromorphic arithmetic device | |
KR102141385B1 (en) | An neuromorphic system with transposable memory and virtual look-up table | |
US5142666A (en) | Learning system in a neuron computer | |
US20200218963A1 (en) | Weight shifting for neuromorphic synapse array | |
EP3966745A1 (en) | Transistorless all-memristor neuromorphic circuits for in-memory computing | |
EP3259735A2 (en) | Spike domain convolution circuit | |
US11340869B2 (en) | Sum-of-products operator, sum-of-products operation method, logical operation device, and neuromorphic device | |
US11526763B2 (en) | Neuromorphic system for performing supervised learning using error backpropagation | |
US11755894B2 (en) | Computing circuitry for configuration and operation of cells and arrays comprising memristor elements | |
US20210390391A1 (en) | In-memory device for operating multi-bit weight | |
US5115492A (en) | Digital correlators incorporating analog neural network structures operated on a bit-sliced basis | |
KR20200068560A (en) | Neuromorphic arithmetic device and operating method thereof | |
US11204740B2 (en) | Neuromorphic arithmetic device and operating method thereof | |
KR20210034172A (en) | Semiconductor device performing a mac operation | |
KR102488174B1 (en) | Neural network circuit using modified input signal | |
Moriyasu et al. | A deep dynamic binary neural network and its application to matrix converters | |
CN115906735A (en) | Multi-bit-number storage and calculation integrated circuit based on analog signals, chip and calculation device | |
JP2023140136A (en) | Multiplication device, multiply-accumulate operation device, matrix operation device, and reservoir device | |
Mileiko et al. | Dynamics of Time-Domain Power-Elastic Circuits for Pervasive Machine Learning | |
CN112749796A (en) | Computing device for neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right |