KR102313796B1 - Neuromorphic arithmetic device - Google Patents
Neuromorphic arithmetic device Download PDFInfo
- Publication number
- KR102313796B1 KR102313796B1 KR1020170113563A KR20170113563A KR102313796B1 KR 102313796 B1 KR102313796 B1 KR 102313796B1 KR 1020170113563 A KR1020170113563 A KR 1020170113563A KR 20170113563 A KR20170113563 A KR 20170113563A KR 102313796 B1 KR102313796 B1 KR 102313796B1
- Authority
- KR
- South Korea
- Prior art keywords
- current
- metal line
- pulses
- computing device
- neuromorphic computing
- 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
- G06C—DIGITAL COMPUTERS IN WHICH ALL THE COMPUTATION IS EFFECTED MECHANICALLY
- G06C15/00—Computing mechanisms; Actuating devices therefor
- G06C15/08—Multiplying or dividing devices; Devices for computing the exponent or root
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Inductance-Capacitance Distribution Constants And Capacitance-Resistance Oscillators (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
본 발명은 뉴로모픽 연산 장치에 관한 것이다. 본 발명의 뉴로모픽 연산 장치는 시냅스 회로, 자체적인 커패시턴스 성분을 갖는 메탈 라인, 오실레이터, 비교기, 및 커패시턴스 칼리브레이터를 포함할 수 있다. 시냅스 회로는 PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성될 수 있다. 메탈 라인은 전류에 의한 전하가 저장되는 메탈라인 커패시터를 포함할 수 있다. 오실레이터는 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성한다. 비교기는 복수의 펄스들의 주파수와 타깃 주파수를 비교하고, 비교 결과에 기초하여 제어 신호를 생성할 수 있다. 커패시턴스 칼리브레이터는 제어 신호에 기초하여, 메탈라인 커패시터의 커패시턴스 값을 조절할 수 있다.The present invention relates to a neuromorphic computing device. The neuromorphic computing device of the present invention may include a synaptic circuit, a metal line having its own capacitance component, an oscillator, a comparator, and a capacitance calibrator. The synaptic circuit may be configured to generate a current by multiplying a PWM signal and a weight. The metal line may include a metal line capacitor in which electric charges are stored. The oscillator generates a plurality of pulses based on the charge stored in the metal line capacitor. The comparator may compare the frequency of the plurality of pulses with the target frequency, and generate a control signal based on the comparison result. The capacitance calibrator may adjust the capacitance value of the metal line capacitor based on the control signal.
Description
본 발명은 뉴로모픽 회로에 관한 것으로, 좀 더 상세하게는, 연산 오차를 보정하도록 구성된 뉴로모픽 연산 장치에 관한 것이다.The present invention relates to a neuromorphic circuit, and more particularly, to a neuromorphic computing device configured to correct an operation error.
뉴로모픽 연산 장치는 인간의 신경계 또는 뇌를 모방하여 정보를 처리하는 장치이다. 뉴로모픽 연산 장치는 인공 지능 기술과 관련된 딥 러닝(deep learning) 또는 머신 러닝(machine learning)에 기초하는 연산 블록과, 연산 블록을 제어하는 제어 블록을 포함한다. 뉴로모픽 연산 장치는 복수의 뉴런들의 2차원 혹은 3차원적 연결로 정의될 수 있다. 각각의 뉴런은, 생물학적 뉴런의 구성 요소와 동일하게, 축색돌기(axon), 수상돌기(dendrite), 및 세포 몸체(soma)에 해당하는 회로로 구성될 수 있다. 특히, 뉴런과 뉴런 사이를 연결하는 시냅스(synapse) 회로에서 연산이 실행된다. A neuromorphic computing device is a device that processes information by mimicking the human nervous system or brain. The neuromorphic computing device includes an operation block based on deep learning or machine learning related to artificial intelligence technology, and a control block for controlling the operation block. A neuromorphic computing device may be defined as a two-dimensional or three-dimensional connection of a plurality of neurons. Each neuron may be composed of a circuit corresponding to an axon, a dendrite, and a cell body (soma), similarly to the components of a biological neuron. In particular, calculations are performed in the synapse circuit that connects neurons to each other.
뉴로모픽 연산 장치에 입력된 정보를 병렬적으로 그리고 신속하게 처리하기 위하여 아날로그 방식의 회로가 적용될 수 있다. 일반적으로, 아날로그 방식으로 구현된 뉴로모픽 연산 장치의 시냅스 회로에서, 수상돌기를 구현하기 위해, 메탈 라인이 자체적으로 가지고 있는 메탈 라인 커패시터가 이용된다. 오실레이터는 메탈 라인 커패시터에 충전된 전하들에 기초하는 펄스들을 생성할 수 있으며, 펄스들이 카운팅 됨으로써, 합연산이 수행된다.In order to process information input to the neuromorphic computing device in parallel and quickly, an analog circuit may be applied. In general, in a synaptic circuit of a neuromorphic computing device implemented in an analog manner, in order to implement a dendrite, a metal line capacitor of a metal line itself is used. The oscillator may generate pulses based on the charges charged in the metal line capacitor, and the pulses are counted, so that the sum operation is performed.
그러나, 메탈 라인 커패시터의 커패시턴스 값은 실제 설계 당시 의도했던 값과 다를 수 있다. 이는 뉴로모픽 연산 장치의 제조 공정에서 야기되는 것으로써, 오실레이터에 의해 출력되는 펄스들의 주파수 편차를 초래한다. 그러므로, 시냅스 회로들에 의해 수행된 곱연산들의 합연산의 부정확성을 야기한다. 그러므로, 오실레이터의 주파수 편차를 해소하는 것은, 뉴로모픽 연산 장치의 정확도 및 신뢰성 향상을 위해 매우 중요한 문제이다.However, the capacitance value of the metal line capacitor may be different from the intended value at the time of actual design. This is caused in the manufacturing process of the neuromorphic computing device, and causes a frequency deviation of the pulses output by the oscillator. Therefore, it causes inaccuracy of the sum of the multiplication operations performed by the synaptic circuits. Therefore, resolving the frequency deviation of the oscillator is a very important problem for improving the accuracy and reliability of the neuromorphic computing device.
본 발명의 목적은, 메탈 라인에서 발생하는 커패시턴스의 부정확성에 의한 연산 오차를 보정하는 뉴로모픽 연산 장치를 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a neuromorphic computing device for correcting an arithmetic error due to inaccuracy of capacitance generated in a metal line.
본 발명의 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 메탈라인 커패시터의 커패시턴스 값을 조절하도록 구성되는 커패시턴스 칼리브레이터를 포함할 수 있다.A neuromorphic computing device according to an embodiment of the present invention includes a synaptic circuit configured to generate a current by performing a multiplication operation on a PWM signal and a weight, and a metal line capacitor in which a charge corresponding to the current is stored. line, an oscillator configured to generate a plurality of pulses based on charge stored in the metal line capacitor, and to adjust a capacitance value of the metal line capacitor based on a comparison result of the frequency of the plurality of pulses with a target frequency It may include a capacitance calibrator configured.
예를 들어, 상기 커패시턴스 칼리브레이터는, 서로 병렬로 연결되는 복수의 커패시터들, 그리고 상기 복수의 커패시터들 각각에 대응하는 복수의 스위치들을 포함할 수 있다. 그리고 상기 메탈 라인 커패시터의 커패턴스 값이 타깃 값이 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다. 그리고, 상기 복수의 커패시터들은 지수적으로 증가하는 커패시턴스 값들을 가질 수 있다. For example, the capacitance calibrator may include a plurality of capacitors connected to each other in parallel, and a plurality of switches corresponding to each of the plurality of capacitors. In addition, at least some of the plurality of switches may be switched on so that the capacitance value of the metal line capacitor becomes a target value. In addition, the plurality of capacitors may have exponentially increasing capacitance values.
예를 들어, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다. 예를 들어, 상기 시냅스 회로는, 상기 전류를 생성하는 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력할 수 있다. 그리고, 상기 메탈라인 커패시터는 상기 메탈라인이 자체적으로 보유하는 커패시턴스에 대응할 수 있다.For example, the neuromorphic computing device includes a PWM converter for converting an input signal into the PWM signal, a counter for counting the plurality of pulses, a comparator for comparing the frequency of the plurality of pulses with a target frequency, and the counter It may further include a level shifter for shifting the counted value by . For example, the synaptic circuit includes a current source for generating the current, and an AND gate for performing an AND operation on the PWM signal and the weight, wherein the synaptic circuit is based on the output of the AND gate, The current may be output. In addition, the metal line capacitor may correspond to a capacitance of the metal line itself.
본 발명의 다른 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 보조 전류원을 포함할 수 있다.A neuromorphic computing device according to another embodiment of the present invention includes a synaptic circuit configured to generate a current by performing a multiplication operation on a PWM signal and a weight, and a metal line capacitor in which a charge corresponding to the current is stored a metal line, an oscillator configured to generate a plurality of pulses based on charges stored in the metal line capacitor, and an oscillator configured to adjust the magnitude of the current based on a comparison result of the frequency of the plurality of pulses with a target frequency An auxiliary current source may be included.
예를 들어, 상기 보조 전류원은, 서로 병렬로 연결되는 복수의 전류원들, 그리고 상기 복수의 전류원들 각각에 대응하는 복수의 스위치들을 포함할 수 있다. 그리고, 상기 시냅스 회로는, 주 전류를 생성하는 주 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 복수의 전류원들 중 적어도 일부와 상기 전류를 출력할 수 있다. 그리고, 상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다.For example, the auxiliary current source may include a plurality of current sources connected to each other in parallel, and a plurality of switches corresponding to each of the plurality of current sources. And, the synaptic circuit includes a main current source for generating a main current, and an AND gate for performing an AND operation on the PWM signal and the weight, wherein the synaptic circuit is, based on the output of the AND gate, the At least some of the plurality of current sources and the current may be output. In addition, at least some of the plurality of switches may be switched on so that the frequency of the plurality of pulses becomes a target frequency.
예를 들어, 상기 복수의 전류원들은 지수적으로 증가하는 전류 값들을 가질 수 있다. 그리고, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다.For example, the plurality of current sources may have exponentially increasing current values. In addition, the neuromorphic computing device includes a PWM converter for converting an input signal into the PWM signal, a counter for counting the plurality of pulses, a comparator for comparing the frequency of the plurality of pulses with a target frequency, and the counter It may further include a level shifter for shifting the counting value.
본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성될 수 있다.A neuromorphic computing device according to another embodiment of the present invention includes a synaptic circuit configured to generate a current by performing a multiplication operation on a PWM signal and a weight, and a metal line capacitor in which a charge corresponding to the current is stored a metal line, an oscillator configured to generate a plurality of pulses based on charges stored in the metal line capacitor, and configured to adjust the magnitude of the current based on a comparison result of the frequency of the plurality of pulses with a target frequency can be
예를 들어, 상기 바이어스 생성기는, 전원 전압을 제공받는 복수의 트랜지스터들, 상기 복수의 전류원들 중 적어도 일부의 각각에 대응하는 복수의 스위치들, 그리고 기준 전압 생성기를 포함하되, 상기 복수의 트랜지스터들의 게이트 전극들은, 상기 기준 전압 생성기에 의해 생성되는 기준 전압이 출력되는 단자와 공통으로 연결될 수 있다. 그리고, 상기 시냅스 회로는, 게이트 전극이 상기 복수의 트랜지스터들의 상기 게이트 전극들에 연결되는 트랜지스터를 포함하는 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력할 수 있다.For example, the bias generator includes a plurality of transistors receiving a power supply voltage, a plurality of switches corresponding to each of at least some of the plurality of current sources, and a reference voltage generator, The gate electrodes may be commonly connected to a terminal to which a reference voltage generated by the reference voltage generator is output. In addition, the synapse circuit includes a current source including a transistor having a gate electrode connected to the gate electrodes of the plurality of transistors, and an AND gate for performing an AND operation on the PWM signal and the weight, wherein the synapse The circuit may output the current based on the output of the AND gate.
예를 들어, 상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다. 그리고, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다.For example, at least some of the plurality of switches may be switched on such that the frequency of the plurality of pulses becomes a target frequency. In addition, the neuromorphic computing device includes a PWM converter for converting an input signal into the PWM signal, a counter for counting the plurality of pulses, a comparator for comparing the frequency of the plurality of pulses with a target frequency, and the counter It may further include a level shifter for shifting the counting value.
본 발명에 실시 예에 따르면, 커패시터의 커패시턴스 값을 조절함으로써 오실레이터의 주파수 편차를 보정할 수 있다.According to an embodiment of the present invention, the frequency deviation of the oscillator may be corrected by adjusting the capacitance value of the capacitor.
본 발명에 다른 실시 예에 따르면, 시냅스 회로에 보조 전류원을 제공함으로써 오실레이터의 주파수 편차를 보정할 수 있다.According to another embodiment of the present invention, it is possible to correct the frequency deviation of the oscillator by providing an auxiliary current source to the synaptic circuit.
본 발명에 또 다른 실시 예에 따르면, 바이어스 생성기를 이용하여 시냅스 회로의 전류를 조절함으로써 오실레이터의 주파수 편차를 보정할 수 있다.According to another embodiment of the present invention, the frequency deviation of the oscillator may be corrected by adjusting the current of the synaptic circuit using a bias generator.
도 1은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 2는 도 1에 도시된 PWM 컨버터들의 동작을 보여주는 도면이다.
도 3은 도 1에 도시된 시냅스 회로들의 구성을 예시적으로 보여주는 블록도이다.
도 4는 도 1에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 7은 도 6에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 10은 도 9에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.1 is a block diagram showing a neuromorphic computing device according to an embodiment of the present invention.
FIG. 2 is a view showing the operation of the PWM converters shown in FIG. 1 .
Figure 3 is a block diagram exemplarily showing the configuration of the synaptic circuits shown in Figure 1.
4 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 1 .
5 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention.
6 is a block diagram illustrating a neuromorphic computing device according to an embodiment of the present invention.
7 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 6 .
8 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention.
9 is a block diagram illustrating a neuromorphic computing device according to an embodiment of the present invention.
FIG. 10 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 9 .
11 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 통상의 기술자 의해 수행될 수 있다. 더욱이, 명확성 및 간결성을 위하여 잘 알려진 기능들 및 구조들에 대한 설명들은 생략된다. 본 명세서에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, details such as detailed configurations and structures are simply provided to help the general understanding of the embodiments of the present invention. Therefore, modifications of the embodiments described herein may be performed by those skilled in the art without departing from the spirit and scope of the present invention. Moreover, descriptions of well-known functions and structures are omitted for the sake of clarity and brevity. The terms used in this specification are terms defined in consideration of the functions of the present invention, and are not limited to specific functions. Definitions of terms may be determined based on matters described in the detailed description.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.Modules in the following drawings or detailed description may be connected to other elements other than those shown in the drawings or described in the detailed description. The connections between modules or components may be direct or non-direct, respectively. A connection between modules or components may be a connection by communication or a physical connection, respectively.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다. Components described with reference to terms such as unit or unit, module, layer, etc. used in the detailed description may be implemented in the form of software, hardware, or a combination thereof. Illustratively, the software may be machine code, firmware, embedded code, and application software. For example, the hardware may include an electrical circuit, an electronic circuit, a processor, a computer, an integrated circuit, integrated circuit cores, a pressure sensor, an inertial sensor, a Micro Electro Mechanical System (MEMS), a passive element, or a combination thereof. can
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.Unless otherwise defined, all terms including technical or scientific meanings used herein have meanings that can be understood by those of ordinary skill in the art to which the present invention belongs. In general, terms defined in the dictionary are interpreted to have the same meaning as the contextual meaning in the related technical field, and unless clearly defined in the text, they are not interpreted to have an ideal or excessively formal meaning.
도 1은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(100)는 복수의 PWM 컨버터들(111~11n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(120), 커패시턴스 칼리브레이터(130), 오실레이터들(140), 카운터들(150), 비교기(160), 및 합산기(170)를 포함할 수 있다.1 is a block diagram showing a neuromorphic computing device according to an embodiment of the present invention.
복수의 PWM 컨버터들(pulse width modulator converters, 111~11n)은 각각 복수의 입력들(INPUT1~INPUTn)을 수신하여 PWM 신호들(PWM1~PWMn)을 생성할 수 있다. 예를 들어, 복수의 입력들(INPUT1~INPUTn)은 바이너리 값일 수 있으며, PWM 신호들(PWM1~PWMn) 각각은 복수의 입력들(INPUT1~INPUTn) 각각에 대응할 수 있다. 즉, PWM 신호들(PWM1~PWMn)은 입력된 값에 따라 서로 다른 펄스 폭을 가질 수 있다. PWM 신호들(PWM1~PWMn) 각각은 바이너리 입력의 논리 '1'에서 하이 값을 가지며, 바이너리 입력의 논리 '0'에서 로우 값을 갖는 신호일 수 있다. 예를 들어, PWM 컨버터들(111~11n)은 인에이블 신호(EN)에 의해 활성화될 수 있다.A plurality of PWM converters (pulse width modulator converters, 111 to 11n) may receive a plurality of inputs INPUT1 to INPUTn, respectively, and generate PWM signals PWM1 to PWMn. For example, the plurality of inputs INPUT1 to INPUTn may be binary values, and each of the PWM signals PWM1 to PWMn may correspond to each of the plurality of inputs INPUT1 to INPUTn. That is, the PWM signals PWM1 to PWMn may have different pulse widths according to input values. Each of the PWM signals PWM1 to PWMn may be a signal having a high value at a logic '1' of the binary input and a low value at a logic '0' of the binary input. For example, the
시냅스 회로 어레이(120)는 행과 열 방향으로 배치되는 복수의 시냅스 회로들(11~n8)을 포함할 수 있다. 예시적으로, 시냅스 회로들은 n개의 행들과 8개의 열들로 배치되는 것으로 도시되었으나, 이에 한정되지 않는다. 복수의 시냅스 회로들(11~n8)은 복수의 PWM 신호들(PWM1~PWMn)을 각각 수신할 수 있다. 예를 들어, 시냅스 회로 어레이(120)의 제 1 행에 배치되는 시냅스 회로들(11~18) 각각은 제 1 PWM 신호(PWM1)를 수신할 수 있다. 시냅스 회로 어레이(120)의 제 2 행에 배치되는 시냅스 회로들(21~28) 각각은 제 2 PWM 신호(PWM2)를 수신할 수 있다. 다른 행들에 배치되는 시냅스 회로들도 유사하다.The
PWM 신호들(PWM1~PWMn)이 각각 수신되는 회선들은 신경세포의 축색돌기(axon)에 대응할 수 있다. 복수의 시냅스 회로들(11~n8)은 가중치들(W1~Wn)을 각각 수신할 수 있다. 또는, 가중치들(W1~Wn)은 시냅스 회로들(11~n8) 각각에 저장되어 있는 값일 수 있다. 예를 들어, PWM 신호들(PWM1~PWMn)은 곱해지는 수인 피승수(multiplicand)일 수 있다. 그리고, 가중치들(W1~Wn)은 곱하는 수인 승수(multiplier)일 수 있다.The lines through which the PWM signals PWM1 to PWMn are received may correspond to an axon of a neuron. The plurality of
복수의 시냅스 회로들(11~n8) 각각은 곱연산을 수행하는 곱셈기로써 동작할 수 있다. 시냅스 회로 어레이(120)는 복수의 승수들과 복수의 피승수들에 대한 복수의 곱연산들을 수행하도록 구성될 수 있다. 예를 들어, 복수의 시냅스 회로들(11~n8) 각각은 곱연산을 수행하기 위한 전류원, 논리 게이트, 및 스위치를 포함할 수 있다. 각각의 시냅스 회로에 의해 연산된 곱셈 결과는 전류로써 출력될 것이다. Each of the plurality of
나아가, 제 1 행에 배치되는 시냅스 회로들(11~18)은 제 1 피승수와 제 1 승수에 대한 제 1 곱연산을 수행하도록 구성될 수 있다. 예를 들어, 시냅스 회로들(11~18) 각각은 제 1 피승수로써 제 1 PWM 신호(PWM1)를 수신할 수 있다. 시냅스 회로들(11~18)은 제 1 승수를 수신할 수 있다. 또는, 제 1 승수는 각각의 시냅스 회로에 미리 저장되어 있을 수 있다.Furthermore, the
다만, 각각의 시냅스 회로는 제 1 승수 중 하나의 비트만을 수신할 수 있다. 예를 들어, 제 1 승수가 8비트의 바이너리 입력이라고 가정하면, 시냅스 회로(11)는 제 1 승수의 MSB (Most Significant Bit)를 저장할 수 있으며, 시냅스 회로(18)는 제 1 승수의 LSB (Least Significant Bit)를 저장할 수 있다. 시냅스 회로들(12~17)은 제 1 승수의 MSB와 LSB 사이의 나머지 비트들을 순차적으로 저장할 수 있다.However, each synaptic circuit may receive only one bit of the first multiplier. For example, assuming that the first multiplier is a binary input of 8 bits, the
시냅스 회로들(11~18) 각각은, 제 1 피승수인 제 1 PWM 신호(PWM1)와 제 1 승수에 대해 부분 적(partial product)을 수행할 수 있다. 예를 들어, 시냅스 회로(11)는 제 1 PWM 신호(PWM1)와 제 1 승수의 MSB에 대해 곱연산을 수행할 수 있다. 시냅스 회로(18)는 제 1 PWM 신호(PWM1)와 제 1 승수의 LSB에 대해 곱연산을 수행할 수 있다. 나머지 시냅스 회로들(12~17)도 제 1 PWM 신호(PWM1)와 제 1 승수의 나머지 비트들에 대해 곱연산을 수행할 수 있다. 이상 설명된 동작들은 나머지 행들에 배치되는 시냅스 회로들(21~n8)에 대해서도 유사하게 적용될 것이다.Each of the
하나의 컬럼에 배치되는 복수의 시냅스 회로들(예컨대, 첫 번째 컬럼의 11~n1)을 연결하는 메탈 라인이 자체적으로 가지고 있는 메탈 라인 커패시터는, 곱연산들에 대한 합연산을 수행하는데 덧셈기로써 동작할 수 있다. 각각의 메탈 라인이 가지고 있는 커패시턴스 성분은 메탈 라인 커패시터(CML)로써 도시되었다. 덧셈 결과는 각각의 컬럼 라인이 가지고 있는 메탈 라인 커패시터(CML)에 저장되는, 시냅스 회로들로부터 출력되는 전류에 의한 전하량에 대응할 것이다.A metal line capacitor that a metal line connecting a plurality of synaptic circuits arranged in one column (eg, 11 to n1 of the first column) has itself operates as an adder to perform a sum operation on multiplication operations. can do. A capacitance component of each metal line is shown as a metal line capacitor (CML). The addition result will correspond to the amount of charge caused by the current output from the synaptic circuits, which is stored in the metal line capacitor (CML) of each column line.
커패시턴스 칼리브레이터(130)는 메탈 라인 커패시터(CML)의 커패시턴스 값을 조절하도록 구성될 수 있다. 메탈 라인 커패시터가 원래 목표로 했던 커패시턴스 값을 갖도록 보정됨으로써, 오실레이터들(140)의 주파수 편차가 보정될 수 있다. 예를 들어, 커패시턴스 칼리브레이터(130)는 복수의 커패시터들을 포함할 수 있다. 커패시턴스 칼리브레이터(130)의 구성 및 상세한 동작은 도 4에서 상세하게 후술될 것이다.The
오실레이터들(140)은 각각이 하나의 메탈 라인에 연결되는 복수의 오실레이터들을 포함할 수 있다. 각각의 오실레이터는 메탈 라인 커패시터(CML)에 저장된 전하에 기초하여 펄스들을 생성할 수 있다. 메탈 라인 커패시터(CML)에 저장된 전하는 복수의 시냅스 회로들에 의한 곱연산들의 합연산 결과에 대응하므로, 오실레이터에 의해 생성되는 펄스들은 합연산 결과에 대응할 수 있다. The
카운터들(150)은 복수의 오실레이터들(140)에 의해 생성되는 펄스들을 카운팅할 수 있다. 예를 들어, 카운터들(150)은 메탈 라인들 각각에 연결되는 복수의 카운터들(151~158)을 포함할 수 있다.The
비교기(160)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(160)는 비교 결과에 기초하여 커패시턴스 칼리브레이터(130)를 제어하기 위한 제어 신호(CS)를 생성한다. 비교기(160)의 상세한 동작은 도 4에서 후술될 것이다.The
합산기(170)는 쉬프팅 된 디지털 값들을 더할 수 있으며, 합산 결과(OUTPUT)를 출력할 수 있다. 합산기(170)는 복수의 디지털 값들을 더하여 그 결과를 출력할 수 있는 다양한 논리 소자들로 구성될 수 있다.The
다만, 카운터들(150)로부터 출력되는 디지털 값들은, 승수와 피승수에 대해 수행된 부분 적(partial product)이 몇 번째 비트에 대한 연산인지가 고려되지 않은 것이다. 따라서, 온전한 연산 결과를 얻기 위해서는 카운터들(180)로부터 출력되는 디지털 값들에 대해 적절한 쉬프팅 (또는 레벨 쉬프팅)이 수행되어야 한다.However, in the digital values output from the
예를 들어, 카운터(151)로부터 출력되는 디지털 값은, 피승수들과, 승수들의 MSB들에 대한 부분 적을 합한 결과이다. 따라서, 카운터(151)로부터 출력되는 디지털 값에 대해 27(즉, 128)이 곱해져야 한다. 예를 들어, 카운터(158)로부터 출력되는 디지털 값은, 피승수들과, 승수들의 LSB들에 대한 부분 적을 합한 결과이다. 따라서, 카운터(158)로부터 출력되는 디지털 값에 대해 20(즉, 1)이 곱해져야 한다. 다른 카운터들(152~157)로부터 출력되는 디지털 값들에 대해서도 이와 유사하게 쉬프팅이 수행되어야 한다. 이러한 쉬프팅은, 예컨대, 레벨 쉬프터(미도시) 등에 의해 수행될 수 있다.For example, the digital value output from the
이상 설명된 실시 예에 따르면, 오실레이터에 의한 펄스들의 카운팅 값과 원래 의도했던 카운팅 값이 비교될 수 있다. 그리고, 비교 결과에 기초하여 각각의 메탈 라인의 메탈 커패시턴스 값이 원래 목표로 했던 값이 되도록 커패시턴스 칼리브레이터(130)가 제어될 수 있다. 그 결과, 오실레이터(140)로부터 출력되는 펄스들의 주파수가 원래 목표로 했던 값이 될 수 있다. 그러므로, 정확한 곱연산과 합연산을 수행하도록 구성되는 뉴로모픽 연산 회로가 제공될 수 있다. According to the above-described embodiment, the counting value of the pulses by the oscillator may be compared with the originally intended counting value. In addition, the
도 2는 도 1에 도시된 PWM 컨버터들의 동작을 보여주는 도면이다. 복수의 컨버터들(111~11n) 중 제 1 PWM 컨버터(111)의 동작이 예시적으로 도시되었으며, 다른 컨버터들(112~11n)의 구성 및 동작도 제 1 PWM 컨버터(111)와 실질적으로 동일하다. FIG. 2 is a view showing the operation of the PWM converters shown in FIG. 1 . The operation of the
제 1 PWM 컨버터(111)는 제 1 입력(INPUT1)을 입력받아 제 1 PWM 신호(PWM1)를 생성할 수 있다. 예시적으로, 제 1 입력(INPUT1)은 8비트의 이진수인 것으로 도시되었다. 제 1 PWM 컨버터(111)에 입력되는 이진수들과, 제 1 PWM 컨버터(111)로부터 출력되는 PWM 신호들의 파형이 예시적으로 도시되었다. 예를 들어, 제 1 PWM 컨버터(111)는 입력되는 이진수의 로직 하이 구간에서 비트 '1'을 출력할 수 있으며, 입력되는 이진수의 로직 로우 구간에서 비트 '0'을 출력할 수 있다.The
도 3은 도 1에 도시된 시냅스 회로들의 구성을 예시적으로 보여주는 블록도이다. 도시의 간략화를 위해, 시냅스 회로들(11~n1) 중 제 1 메탈 라인(ML1)에 연결된 제 1 및 제 n 시냅스 회로들(11, n1)만이 도시되었다. 제 1 시냅스 회로(11)는 AND 게이트, 제 1 전류원(CS1), 및 제 1 스위치(SW1)를 포함할 수 있다. 제 n 시냅스 회로(n1)는 AND 게이트, 제 n 전류원(CSn), 및 제 n 스위치(SWn)를 포함할 수 있다.Figure 3 is a block diagram exemplarily showing the configuration of the synaptic circuits shown in Figure 1. For simplicity of illustration, only the first and n-th
시냅스 회로들(11~n1)의 AND 게이트들은, PWM 컨버터들(도 1 참조, 111~11n)에 의해 생성된 PWM 신호들(PWM1~PWMn)을 각각 입력받을 수 있다. 예를 들어, PWM 신호들(PWM1~PWMn)은 곱셈 연산에서 곱해지는 수인 피승수일 수 있다. 한편, 가중치들(W1~Wn)도 시냅스 회로들(11~n1)의 AND 게이트들로 각각 입력될 수 있다. 예를 들어, 가중치들(W1~Wn)은 곱하는 수인 승수일 수 있다. 예를 들어, 가중치들(W1~Wn)은 외부로부터 입력되거나, 시냅스 회로들(11~n1) 내부에 저장되어 있을 수 있다.The AND gates of the
시냅스 회로들(11~n1)은 복수의 곱 연산들을 수행할 수 있다. 예를 들어, 제 1 메탈 라인(ML1)에 연결된 제 1 시냅스 회로(11)는 승수(PWM1)와 피승수(W1)에 대한 제 1 곱연산을 수행할 수 있다. 유사하게, 제 1 메탈 라인(ML1)에 연결된 제 n 시냅스 회로(n1)는 승수(PWMn)와 피승수(Wn)에 대한 제 n 곱연산을 수행할 수 있다. 여기서, 제 1 곱연산의 결과는 전류 I1로 나타날 수 있으며, 제 n 곱연산의 결과는 전류 In로 나타날 수 있다. 결국에는, 제 1 곱연산 내지 제 n 곱연산의 합은 전류 I1~In의 합으로 나타날 것이다.The
스위치들(SW1~SWn) 각각은, 시냅스 회로들(11~n1) 각각에 구비된 AND 게이트들에 의해 수행된 연산 결과에 따라 스위칭-온 되거나 스위칭-오프 될 수 있다. 예를 들어, AND 게이트에 의해 수행된 연산 결과가 논리 '1'이면, 스위치는 스위칭-온 될 것이며, AND 게이트에 의해 수행된 연산 결과가 논리 '0'이면, 스위치는 스위칭-오프 될 것이다. 스위치들(SW1~SWn)이 스위칭-온 됨으로써, 전류원들(CS1~CSn)에 의해 생성된 전류는 제 1 메탈 라인(ML1)을 통하여 흐를 것이다.Each of the switches SW1 to SWn may be switched on or switched off according to a result of an operation performed by AND gates provided in each of the
전류원들(CS1~CSn)은, 제 1 메탈 라인 커패시터(CML1)에 저장되는 전하에 의한 전압 레벨이 선형적으로 증가하도록 구성될 수 있다. 일반적으로, 커패시터와 같은 저장 소자가 충전될 때, 커패시터 양단의 전압 레벨은 비선형적으로 증가한다. 따라서, 제 1 메탈 라인 커패시터(CML1) 의 선형성이 보장되지 않는다면, 전류들 I1~In의 합은 제 1 곱연산 내지 제 n 곱연산의 합을 나타내지 않을 것이다. 그러나, 전류원들(CS1~CSn)이 메탈 라인 커패시터(CML)의 선형성을 보장하도록 구성되기 때문에, 제 1 곱연산 내지 제 n 곱연산의 합은 전류 I1~In의 합을 나타낼 수 있다.The current sources CS1 to CSn may be configured such that a voltage level caused by the charge stored in the first metal line capacitor CML1 is linearly increased. In general, when a storage element, such as a capacitor, is charged, the voltage level across the capacitor increases non-linearly. Accordingly, if the linearity of the first metal line capacitor CML1 is not guaranteed, the sum of the currents I1 to In will not represent the sum of the first to nth multiplication operations. However, since the current sources CS1 to CSn are configured to ensure the linearity of the metal line capacitor CML, the sum of the first to nth products may represent the sum of the currents I1 to In.
도 4는 도 1에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 4에는 커패시턴스 칼리브레이터(131), 오실레이터(141), 카운터(151), 및 비교기(161)의 예시적인 구성이 도시되었다. 칼리브레이터(131)는 도 1의 칼리브레이터(130) 중 제 1 메탈 라인(ML1)에 연결된 칼리브레이터이다. 오실레이터(141)는 도 1에 도시된 오실레이터들(140) 중 제 1 메탈 라인(ML1)에 연결된 오실레이터이다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 1 내지 도 3을 함께 참조하여 설명하기로 한다.4 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 1 . 4 shows an exemplary configuration of a
제 1 메탈 라인(ML1)에 연결된 뉴로모픽 시냅스 회로들(11~n1) 각각에 의한 곱연산들은 전류들의 합(I1+I2+…+In)으로 나타낼 수 있다. 전류들(I1+I2+…+In)에 의한 전하들은 제 1 메탈 라인 커패시터(CML1)에 저장될 것이다.Multiplication operations by each of the neuromorphic
커패시턴스 칼리브레이터(131)는 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값을 획득하기 위하여 구성되는 복수의 커패시터들을 포함할 수 있다. 예를 들어, 커패시턴스 칼리브레이터(131)는 병렬로 연결된 복수의 커패시터들(C1~Cn)과 복수의 스위치들(SW1~SWn)을 포함할 수 있다. 예시적으로, 병렬로 연결되는 커패시터들(C1~Cn)이 도시되었으나, 직렬로 연결되거나, 직렬 및 병렬의 조합으로 구성되는 다양한 커패시터들이 적용될 수 있다.The
커패시턴스 칼리브레이터(131)는 제어 신호(CS)의 제어에 의하여 적절히 스위칭 온 될 수 있다. 복수의 커패시터들(C1~Cn) 중 스위칭-온 된 일부의 커패시터(들)과 제 1 메탈 라인 커패시터(CML1)에 의하여 원래 의도했던 커패시턴스 값이 획득될 수 있다. 예를 들어, 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값은 원래 의도되었던 커패시턴스 값보다 작도록 설계될 수 있다. The
오실레이터(140)는 제 1 메탈 라인 커패시터(CML1)에 저장되는 전하의 변화에 따라 펄스들을 생성하도록 구성될 수 있다. 예를 들어, 오실레이터(140)는 복수의 반전 증폭기들 (또는 인버터)을 포함할 수 있다. 이러한 링 오실레이터로 구현된 오실레이터(140)의 출력은 스위치(SW)를 스위칭-온 시키거나 스위칭-오프 시킬 것이다. 그 결과, 제 1 메탈 라인 커패시터(CML1)에 저장된 전하는 충전과 방전을 반복할 수 있으며, 펄스들이 생성될 것이다. 그러나, 본 도면에 도시된 오실레이터(140)의 구성은 예시적인 것이고, 그 구성은 이에 한정되지 않는다.The
카운터(150)는 오실레이터(140)로부터 출력되는 펄스들을 카운팅할 수 있다. 제 1 메탈 라인 커패시터(CML1)가 충전과 방전을 반복함으로써, 노드 N을 통하여 펄스들이 출력될 것이다. 카운터(150)는 (예컨대, 기준 주기 동안) 카운팅 된 값을 비교기(161)로 전달할 수 있다.The
비교기(161)는 카운팅 된 값과 타깃 값을 비교할 수 있다. 예를 들어, 타깃 값은 뉴로모픽 연산 장치를 설계할 당시 원래 의도되었던 제 1 메탈 라인(ML1)이 자체적으로 포함하는 커패시턴스 값에 대응할 수 있다. 그러나, 공정 상의 이유 등으로 인하여 원래 의도되었던 제 1 메탈 라인(ML1)의 커패시턴스 값과 실제 측정 값은 다를 수 있다. 비교기(161)는, 비교 결과에 기초하여, 카운트 값과 타깃 값을 일치시키는 커패시턴스 값을 획득하기 위하여, 스위치들(SW1~SWn)을 제어하는 제어 신호(CS)를 생성할 수 있다.The comparator 161 may compare the counted value with the target value. For example, the target value may correspond to a capacitance value that the first metal line ML1 originally intended when designing the neuromorphic computing device includes itself. However, the originally intended capacitance value of the first metal line ML1 may be different from the actual measured value due to a process reason or the like. The comparator 161 may generate a control signal CS for controlling the switches SW1 to SWn to obtain a capacitance value that matches the count value and the target value based on the comparison result.
일반적인 뉴로모픽 연산 회로에 의하면, 메탈 라인 커패시터의 실제 커패시턴스 값과 의도하였던 커패시턴스 값이 차이 때문에, 복수의 시냅스 회로들에 의한 곱연산들의 합연산을 정확하게 도출할 수 없었다. 그러나, 본 발명과 같이 커패시턴스 칼리브레이터를 제공하여 원하는 메탈 라인 커패시턴스 값을 획득함으로써, 합연산의 정확도를 향상시킬 수 있다.According to a general neuromorphic operation circuit, due to the difference between the actual capacitance value of the metal line capacitor and the intended capacitance value, the sum operation of the multiplication operations by the plurality of synaptic circuits could not be accurately derived. However, by providing a capacitance calibrator as in the present invention to obtain a desired metal line capacitance value, the accuracy of the sum operation can be improved.
도 5는 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 1 내지 도 4를 함께 참조하여 설명하기로 한다.5 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention. In order to help the understanding of the description, it will be described with reference to FIGS. 1 to 4 together.
S110 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.In step S110 , a maximum value for all multiplicands and all multipliers may be input. For example, the multiplier may be PWM signals PWM1 to PWMn input to the
S120 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다. In step S120 , the counting value output during the reference section and the target value may be compared. For example, the target value may be a capacitance value of a metal line that was originally intended when designing a neuromorphic synaptic circuit.
S130 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 커패시턴스 값이 설정될 수 있다. 예를 들어, 도 4의 커패시턴스 칼리브레이터(131)를 구성하는 복수의 커패시터들 중 일부가 적절히 스위칭-온 됨으로써, 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값과 함께, 원하는 커패시턴스 값이 획득될 수 있다.In operation S130 , a capacitance value matching the counting value and the target value may be set based on the comparison result of the counting value and the target value. For example, when some of the plurality of capacitors constituting the
도 6은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(200)는 복수의 PWM 컨버터들(211~21n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(220), 오실레이터들(240), 카운터들(250), 비교기(260), 합산기(170), 및 보조 전류원(280)을 포함할 수 있다.6 is a block diagram illustrating a neuromorphic computing device according to an embodiment of the present invention.
본 실시 예에서 설명되는 뉴로모픽 연산 장치(200)의 구성 요소들 중, 보조 전류원(280)을 제외한 나머지 구성 요소들은 도 1 내지 도 6을 통하여 설명된 것들과 실질적으로 동일하거나 유사하다. 그러므로, 중복되는 설명은 생략하기로 한다.Among the components of the
비교기(260)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(260)는 비교 결과에 기초하여 보조 전류원(280)을 제어하기 위한 제어 신호(CS)를 생성한다.The
보조 전류원(260)은 제어 신호(CS)에 기초하여 시냅스 회로들(11~n8) 각각이 생성하는 전류의 크기를 조절하도록 구성될 수 있다. 예를 들어, 보조 전류원(260)은, 시냅스 회로들(11~n8) 각각이 다양한 크기의 전류를 생성하도록, 복수의 전류원들을 포함할 수 있다. 복수의 전류원들 각각은 제어 제어 신호(CS)에 기초하여 선택적으로 제공될 수 있다.The auxiliary
보조 전류원(260)을 구성하는 전류원들이 선택적으로 적절히 제공됨으로써, 메탈 라인 커패시터(CML)로 제공되는 전류의 양도 적절히 가변할 수 있다. 따라서, 가변하는 전류의 크기에 따라 오실레이터(240)의 주파수는 가변하므로, 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 주파수의 카운팅 횟수가 획득될 수 있다.As current sources constituting the auxiliary
도 7은 도 6에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 6에는 제 1 메탈 라인(ML1) 에 연결되는 시냅스 회로(11), 오실레이터(241), 및 보조 전류원(280)이 도시되었다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 6을 함께 참조하여 설명하기로 한다.7 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 6 . 6, the
보조 전류원(280)은 복수의 보조 전류원들(SCS1~SCSn)을 포함할 수 있다. 예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각이 시냅스 회로(11)에 선택적으로 제공되도록 복수의 보조 스위치들(SSW1~SSWn)이 제공될 수 있다.The auxiliary
예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각은 서로 같은 크기의 보조 전류들을 생성하거나, 또는 서로 다른 크기의 보조 전류들을 생성하도록 구성될 수 있다. 예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각이 서로 다른 크기의 보조 전류들을 생성하도록 구성되는 경우, 복수의 보조 전류원들(SCS1~SCSn) 각각이 생성하는 전류의 크기는 지수적으로 증가할 수 있다.For example, each of the plurality of auxiliary current sources SCS1 to SCSn may be configured to generate auxiliary currents having the same size or different sizes. For example, when each of the plurality of auxiliary current sources SCS1 to SCSn is configured to generate auxiliary currents having different sizes, the magnitude of the current generated by each of the plurality of auxiliary current sources SCS1 to SCSn is exponential. can increase
시냅스 회로(11)에 기본적으로 제공되는 (CS1에 의한) 전류에 더하여, 복수의 보조 전류원들(SCS1~SCSn) 중 적어도 일부가 제공됨으로써, 시냅스 회로(11)로부터 출력되는 전류(I1)의 크기가 증가하거나 감소할 수 있다. 결과적으로, 증가하거나 감소한 전류(I1)이 크기에 의하여, 오실레이터(241)에 의해 생성되는 펄스들의 주파수가 변함으로써, 원하는 카운팅 값을 획득할 수 있다.In addition to the current (by CS1) basically provided to the
도 8은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 6 내지 도 7을 함께 참조하여 설명하기로 한다.8 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention. In order to help the understanding of the description, it will be described with reference to FIGS. 6 to 7 together.
S210 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.In step S210 , a maximum value for all multiplicands and all multipliers may be input. For example, the multiplier may be PWM signals PWM1 to PWMn input to the
S220 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다. In step S220, the counting value output during the reference section and the target value may be compared. For example, the target value may be a capacitance value of a metal line that was originally intended when designing a neuromorphic synaptic circuit.
S230 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 전류(I1)의 크기가 설정될 수 있다. 예를 들어, 도 7의 보조 스위치들(SSW1~SSWn) 중 적어도 일부가 적절히 스위칭-온 됨으로써, 전류원(SC1)과 보조 전류원들(SCS1~SCSn)에 의한 전류들 중 적어도 일부가 시냅스 회로(11)로부터 출력될 수 있다. 그 결과, 뉴로모픽 시냅스 회로를 설계할 당시 원래 의도되었던 타깃 주파수를 갖는 펄스들이 오실레이터(241)로부터 출력될 수 있다. In operation S230 , based on the comparison result of the counting value and the target value, the magnitude of the current I1 matching the counting value and the target value may be set. For example, at least some of the auxiliary switches SSW1 to SSWn of FIG. 7 are properly switched on, so that at least some of the currents by the current source SC1 and the auxiliary current sources SCS1 to SCSn are synaptic circuit 11 ) can be output from As a result, pulses having a target frequency originally intended at the time of designing the neuromorphic synaptic circuit may be output from the
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(300)는 복수의 PWM 컨버터들(311~31n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(320), 오실레이터들(340), 카운터들(350), 비교기(360), 합산기(370), 및 바이어스 생성기(390)을 포함할 수 있다.9 is a block diagram illustrating a neuromorphic computing device according to an embodiment of the present invention.
본 실시 예에서 설명되는 뉴로모픽 연산 장치(300)의 구성 요소들 중, 바이어스 생성기(390)을 제외한 나머지 구성 요소들은 도 1 내지 도 6을 통하여 설명된 것들과 실질적으로 동일하거나 유사하다. 그러므로, 중복되는 설명은 생략하기로 한다.Among the components of the
비교기(360)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(360)는 비교 결과에 기초하여 바이어스 생성기(390)를 제어하기 위한 제어 신호(CS)를 생성한다.The
바이어스 생성기(390)는 복수의 시냅스 회로들(11~n8) 각각이 일정한 레벨의 전류를 생성하도록 보조할 수 있다. 예를 들어, 바이어스 생성기(390)는, 바이어스 생성기(390)에 의해 생성된 전류가 복수의 시냅스 회로들(11~n8) 각각이 생성하는 전류에 반영되도록 하는 커런트 미러로써 구현될 수 있다.The
바이어스 생성기(390)에 의해 생성된 기준 전류가 각각의 시냅스 회로가 생성하는 전류에 반영됨으로써, 메탈 라인 커패시터(CML)로 제공되는 전류의 양도 적절히 가변할 수 있다. 따라서, 가변하는 전류의 크기에 따라 오실레이터(340)의 주파수는 가변하므로, 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 주파수의 카운팅 횟수가 획득될 수 있다.As the reference current generated by the
도 10은 도 9에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 9에는 제 1 메탈 라인(ML1) 에 연결되는 시냅스 회로(11), 오실레이터(341), 및 바이어스 생성기(390)가 도시되었다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 9를 함께 참조하여 설명하기로 한다.FIG. 10 is a block diagram exemplarily showing some configurations of the neuromorphic operation circuit shown in FIG. 9 . 9 shows the
바이어스 생성기(390)는 시냅스 회로(11)로부터 출력되는 전류(I1)의 레벨을 조절하도록 구성될 수 있다. 예를 들어, 제어 신호(CS)에 의해 바이어스 생성기(390)가 제어됨으로써, 전류(I1)의 크기가 증가하거나 감소할 수 있다. 예를 들어, 바이어스 생성기(390)는 바이어스 생성기(390) 내부에서 생성된 전류의 크기에 따라 전류(I1)의 크기가 변하도록 구성된 커런트 미러(current mirror)로 구현될 수 있다.The
바이어스 생성기(390)가 커런트 미러로써 구현되는 경우, 바이어스 생성기(390)는 전원 전압(VDD)을 공급받는 복수의 트랜지스터들(T0~Tn), 제어 신호(CS)에 의해 스위칭-온 또는 스위칭-오프 되는 복수의 보조 스위치들(SSW1~SSW), 및 기준 전압 생성기(392)를 포함할 수 있다. 복수의 트랜지스터들(T0~Tn)의 게이트 전극들은, 기준 전압 생성기(392)에 의해 생성되는 기준 전압이 출력되는 단자 및 전류원(CS1)을 구성하는 PMOS 트랜지스터의 게이트 전극과 공통으로 연결될 수 있다. 복수의 트랜지스터들(T1~Tn) 각각은 서로 같은 크기의 전류들이 출력되도록 같은 크기를 가질 수 있다. 또는, 복수의 트랜지스터들(T1~Tn) 각각은 출력되는 전류들의 크기가 지수적으로 증가하도록 서로 다른 크기를 가질 수 있다. When the
기준 전압 생성기(392)는 일정한 크기의 바이어스 전압을 생성하도록 구성될 수 있다. 예를 들어, 기준 전압 생성기(392)는 반도체 제조 공정에서의 편차에 영향을 받지 않도록, 밴드 갭 레퍼런스 회로(band gap reference circuit)로 구성될 수 있다. 예를 들어, 기준 전압 생성기(392)에 의해 생성된 전압(혹은 전류)에 의해 전류원(CS1)을 구성하는 PMOS 트랜지스터가 턴-온 되므로, 기준 전류(Iref)의 크기가 제어된다면, 전류원(CS1)을 구성하는 PMOS 트랜지스터로부터 출력되는 전류(I1)의 크기도 제어될 수 있다.The reference voltage generator 392 may be configured to generate a bias voltage of a constant magnitude. For example, the reference voltage generator 392 may be configured as a band gap reference circuit so as not to be affected by variations in a semiconductor manufacturing process. For example, since the PMOS transistor constituting the current source CS1 is turned on by the voltage (or current) generated by the reference voltage generator 392 , if the magnitude of the reference current Iref is controlled, the current source CS1 ), the magnitude of the current I1 output from the PMOS transistors constituting it can also be controlled.
시냅스 회로(11)로부터 출력되는 전류(I1)의 크기를 변화시키는 바이어스 생성기(390)를 제공함으로써, 오실레이터(341)에 의해 생성되는 펄스들의 주파수를 원하는 주파수로 설정할 수 있다. 오실레이터(341)의 예시적인 구성 및 동작은 도 4 및 도 7에 도시된 오실레이터들(141, 241)과 동일하거나 유사하므로, 상세한 설명은 생략하기로 한다. 결과적으로, 카운터(예컨대, 도 9의 351)에 의한 원하는 카운팅 값을 획득할 수 있다.By providing the
도 11은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 9 내지 도 10을 함께 참조하여 설명하기로 한다.11 is a flowchart illustrating a method of correcting a frequency deviation of an oscillator according to an embodiment of the present invention. In order to help the understanding of the description, it will be described with reference to FIGS. 9 to 10 together.
S310 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.In step S310 , a maximum value for all multiplicands and all multipliers may be input. For example, the multiplier may be PWM signals PWM1 to PWMn input to the
S320 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다. In step S320 , the counting value output during the reference section and the target value may be compared. For example, the target value may be a capacitance value of a metal line that was originally intended when designing a neuromorphic synaptic circuit.
S330 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 전류(Iref)의 크기가 설정될 수 있다. 예를 들어, 도 10의 보조 스위치들(SSW1~SSWn) 중 적어도 일부가 적절히 스위칭-온 됨으로써, 전류원(SC1)을 구성하는 PMOS 트랜지스터로부터 출력되는 전류의 크기가 제어될 수 있다. 그 결과, 뉴로모픽 시냅스 회로를 설계할 당시 원래 의도되었던 타깃 주파수를 갖는 펄스들이 오실레이터(341)로부터 출력될 수 있다.In operation S330 , based on the comparison result of the counting value and the target value, the magnitude of the current Iref matching the counting value and the target value may be set. For example, when at least some of the auxiliary switches SSW1 to SSWn of FIG. 10 are properly switched on, the magnitude of the current output from the PMOS transistor constituting the current source SC1 may be controlled. As a result, pulses having a target frequency originally intended at the time of designing the neuromorphic synaptic circuit may be output from the
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.The contents described above are specific examples for carrying out the present invention. The present invention will include not only the above-described embodiments, but also simple design changes or easily changeable embodiments. In addition, the present invention will also include techniques that can be easily modified and implemented in the future using the above-described embodiments.
100, 200, 300: 뉴로모픽 연산 장치
111~11n, 211~21n, 311~31n: PWM 컨버터들
120, 220, 320: 시냅스 회로 어레이
130: 커패시턴스 칼리브레이터
140, 240, 340: 오실레이터들
150, 250, 350: 카운터들
160, 260, 360: 비교기
170, 270, 370: 합산기
280: 보조 전류원
390: 바이어스 생성기100, 200, 300: Neuromorphic computing unit
111~11n, 211~21n, 311~31n: PWM converters
120, 220, 320: synaptic circuit array
130: capacitance calibrator
140, 240, 340: oscillators
150, 250, 350: Counters
160, 260, 360: comparator
170, 270, 370: totalizer
280: auxiliary current source
390: bias generator
Claims (18)
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 메탈라인 커패시터의 커패시턴스 값을 조절하도록 구성되는 커패시턴스 칼리브레이터를 포함하는 뉴로모픽 연산 장치.a synaptic circuit configured to multiply a PWM signal and a weight to generate a current;
a metal line including a metal line capacitor in which a charge corresponding to the current is stored;
an oscillator configured to generate a plurality of pulses based on charge stored in the metal line capacitor; and
and a capacitance calibrator configured to adjust a capacitance value of the metal line capacitor based on a comparison result between the frequencies of the plurality of pulses and a target frequency.
상기 커패시턴스 칼리브레이터는:
서로 병렬로 연결되는 복수의 커패시터들; 그리고
상기 복수의 커패시터들 각각에 대응하는 복수의 스위치들을 포함하는 뉴로모픽 연산 장치.The method of claim 1,
The capacitance calibrator is:
a plurality of capacitors connected to each other in parallel; and
Neuromorphic computing device including a plurality of switches corresponding to each of the plurality of capacitors.
상기 메탈 라인 커패시터의 커패턴스 값이 타깃 값이 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치.3. The method of claim 2,
A neuromorphic computing device in which at least some of the plurality of switches are switched on so that the capacitance value of the metal line capacitor becomes a target value.
상기 복수의 커패시터들은 지수적으로 증가하는 커패시턴스 값들을 갖는 뉴로모픽 연산 장치.4. The method of claim 3,
The plurality of capacitors have capacitance values that increase exponentially.
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치.The method of claim 1,
a PWM converter for converting an input signal into the PWM signal;
a counter for counting the plurality of pulses;
a comparator comparing the frequencies of the plurality of pulses with a target frequency; and
Neuromorphic computing device further comprising a level shifter for shifting the value counted by the counter.
상기 시냅스 회로는:
상기 전류를 생성하는 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력하는 뉴로모픽 연산 장치.The method of claim 1,
The synaptic circuit is:
a current source for generating the current; and
An AND gate for performing an AND operation on the PWM signal and the weight,
The synaptic circuit is a neuromorphic computing device that outputs the current based on an output of the AND gate.
상기 메탈라인 커패시터는 상기 메탈라인이 자체적으로 보유하는 커패시턴스에 대응하는 뉴로모픽 연산 장치.The method of claim 1,
The metal line capacitor is a neuromorphic computing device corresponding to a capacitance of the metal line itself.
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 보조 전류원을 포함하는 뉴로모픽 연산 장치.a synaptic circuit configured to generate a current by multiplying the PWM signal and a weight;
a metal line including a metal line capacitor in which a charge corresponding to the current is stored;
an oscillator configured to generate a plurality of pulses based on charge stored in the metal line capacitor; and
and an auxiliary current source configured to adjust the magnitude of the current based on a comparison result of the frequency of the plurality of pulses and the target frequency.
상기 보조 전류원은:
서로 병렬로 연결되는 복수의 전류원들; 그리고
상기 복수의 전류원들 각각에 대응하는 복수의 스위치들을 포함하는 뉴로모픽 연산 장치.9. The method of claim 8,
The auxiliary current source is:
a plurality of current sources connected to each other in parallel; and
Neuromorphic computing device including a plurality of switches corresponding to each of the plurality of current sources.
상기 시냅스 회로는:
주 전류를 생성하는 주 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 복수의 전류원들 중 적어도 일부와 상기 전류를 출력하는 뉴로모픽 연산 장치.10. The method of claim 9,
The synaptic circuit is:
a main current source generating a main current; and
An AND gate for performing an AND operation on the PWM signal and the weight,
The synaptic circuit, based on the output of the AND gate, a neuromorphic computing device for outputting the current and at least some of the plurality of current sources.
상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치.10. The method of claim 9,
A neuromorphic computing device in which at least some of the plurality of switches are switched on so that the frequency of the plurality of pulses becomes a target frequency.
상기 복수의 전류원들은 지수적으로 증가하는 전류 값들을 갖는 뉴로모픽 연산 장치.10. The method of claim 9,
The plurality of current sources is a neuromorphic computing device having exponentially increasing current values.
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치.9. The method of claim 8,
a PWM converter for converting an input signal into the PWM signal;
a counter for counting the plurality of pulses;
a comparator comparing the frequencies of the plurality of pulses with a target frequency; and
Neuromorphic computing device further comprising a level shifter for shifting the value counted by the counter.
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 바이어스 생성기를 포함하는 뉴로모픽 연산 장치.a synaptic circuit configured to multiply a PWM signal and a weight to generate a current;
a metal line including a metal line capacitor in which a charge corresponding to the current is stored;
an oscillator configured to generate a plurality of pulses based on charge stored in the metal line capacitor; and
and a bias generator configured to adjust the magnitude of the current based on a comparison result of the frequency of the plurality of pulses and the target frequency.
상기 바이어스 생성기는:
전원 전압을 제공받는 복수의 트랜지스터들;
상기 복수의 전류원들 중 적어도 일부의 각각에 대응하는 복수의 스위치들; 그리고
기준 전압 생성기를 포함하되,
상기 복수의 트랜지스터들의 게이트 전극들은, 상기 기준 전압 생성기에 의해 생성되는 기준 전압이 출력되는 단자와 공통으로 연결되는 뉴로모픽 연산 장치.15. The method of claim 14,
The bias generator is:
a plurality of transistors receiving a power supply voltage;
a plurality of switches corresponding to each of at least some of the plurality of current sources; and
a reference voltage generator;
The gate electrodes of the plurality of transistors are commonly connected to a terminal from which a reference voltage generated by the reference voltage generator is output.
상기 시냅스 회로는:
게이트 전극이 상기 복수의 트랜지스터들의 상기 게이트 전극들에 연결되는 트랜지스터를 포함하는 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력하는 뉴로모픽 연산 장치.16. The method of claim 15,
The synaptic circuit is:
a current source comprising a transistor having a gate electrode coupled to the gate electrodes of the plurality of transistors; and
An AND gate for performing an AND operation on the PWM signal and the weight,
The synaptic circuit is a neuromorphic computing device that outputs the current based on an output of the AND gate.
상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치.16. The method of claim 15,
A neuromorphic computing device in which at least some of the plurality of switches are switched on so that the frequency of the plurality of pulses becomes a target frequency.
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치.15. The method of claim 14,
a PWM converter for converting an input signal into the PWM signal;
a counter for counting the plurality of pulses;
a comparator comparing the frequencies of the plurality of pulses with a target frequency; and
Neuromorphic computing device further comprising a level shifter for shifting the value counted by the counter.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/828,153 US10803383B2 (en) | 2017-01-25 | 2017-11-30 | Neuromorphic arithmetic device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170012297 | 2017-01-25 | ||
KR20170012297 | 2017-01-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180088258A KR20180088258A (en) | 2018-08-03 |
KR102313796B1 true KR102313796B1 (en) | 2021-10-20 |
Family
ID=63250313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170113563A KR102313796B1 (en) | 2017-01-25 | 2017-09-05 | Neuromorphic arithmetic device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102313796B1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102562320B1 (en) | 2018-12-24 | 2023-08-01 | 삼성전자주식회사 | Method and apparatus for processing neural network based on bitwise operation |
CN109714119B (en) * | 2018-12-29 | 2023-10-24 | 中国人民解放军陆军工程大学 | Neuromorphic circuit and signal frequency shift detection system |
WO2020242121A1 (en) * | 2019-05-24 | 2020-12-03 | 한양대학교 에리카산학협력단 | Synapse-mimetic device capable of neural network training |
KR102490774B1 (en) * | 2019-05-24 | 2023-01-20 | 한양대학교 에리카산학협력단 | Synaptic Device For Neural Network Training |
WO2022260413A1 (en) * | 2021-06-07 | 2022-12-15 | 건국대학교 산학협력단 | Apparatus and method for correcting transition error of pulse width-based current domain in-memory neural network calculator |
KR102514649B1 (en) * | 2021-11-18 | 2023-03-29 | 서울대학교산학협력단 | Neuromorphic device and neuron circuit compensating for changes in synaptic characteristics |
WO2024158266A1 (en) * | 2023-01-26 | 2024-08-02 | 서울대학교 산학협력단 | Synapse circuit and operation method thereof, and neuromorphic device including synapse circuit |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017236A1 (en) | 2002-07-26 | 2004-01-29 | Bingxue Shi | Wide dynamic pulse width modulation neuron circuit |
US20040251949A1 (en) | 2003-06-12 | 2004-12-16 | Winbond Electronics Corporation | Current-mode synapse multiplier circuit |
US20120011093A1 (en) | 2010-07-07 | 2012-01-12 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic stdp |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100988812B1 (en) * | 2008-04-10 | 2010-10-20 | 주식회사 하이닉스반도체 | Semiconductor Device Equipped With Comprising Solid Transistor In Peri Area |
-
2017
- 2017-09-05 KR KR1020170113563A patent/KR102313796B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017236A1 (en) | 2002-07-26 | 2004-01-29 | Bingxue Shi | Wide dynamic pulse width modulation neuron circuit |
US20040251949A1 (en) | 2003-06-12 | 2004-12-16 | Winbond Electronics Corporation | Current-mode synapse multiplier circuit |
US20120011093A1 (en) | 2010-07-07 | 2012-01-12 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic stdp |
Also Published As
Publication number | Publication date |
---|---|
KR20180088258A (en) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102313796B1 (en) | Neuromorphic arithmetic device | |
US10803383B2 (en) | Neuromorphic arithmetic device | |
KR102314300B1 (en) | Neuromorphic arithmetic device | |
US10438116B2 (en) | Neuromorphic arithmetic device | |
KR102653822B1 (en) | Mixed signal computing system and method | |
KR102679656B1 (en) | Systems and methods for mixing-signal computing | |
US11194886B2 (en) | Bit-ordered binary-weighted multiplier-accumulator | |
EP3580699B1 (en) | Systems and methods for mixed-signal computing | |
US20190188241A1 (en) | Systems and methods for mapping matrix calculations to a matrix multiply accelerator | |
US20190213471A1 (en) | Neuromorphic computing device and operating method thereof | |
US20220113942A1 (en) | Throughput and precision-programmable multiplier-accumulator architecture | |
KR20190106185A (en) | An neuromorphic system with transposable memory and virtual look-up table | |
US12099569B2 (en) | Adaptive settling time control for binary-weighted charge redistribution circuits | |
US11526763B2 (en) | Neuromorphic system for performing supervised learning using error backpropagation | |
KR102420362B1 (en) | Neuromorphic arithmetic device | |
US20230385620A1 (en) | Spike neural network circuit | |
US20230305806A1 (en) | Multiplication device, multiply-accumulate operation device, matrix operation device, and reservoir device | |
US20220300792A1 (en) | Memory device and neural network apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |