KR20190007143A - Neuromorphic arithmetic device - Google Patents

Neuromorphic arithmetic device Download PDF

Info

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
Application number
KR1020170088008A
Other languages
Korean (ko)
Other versions
KR102420362B1 (en
Inventor
박성모
김성은
오광일
이주현
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020170088008A priority Critical patent/KR102420362B1/en
Publication of KR20190007143A publication Critical patent/KR20190007143A/en
Application granted granted Critical
Publication of KR102420362B1 publication Critical patent/KR102420362B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Abstract

The present invention relates to a neuromorphic arithmetic device. According to embodiments of the present invention, the neuromorphic arithmetic device includes a pulse width modulator, a synapse array, an oscillator, a counter, and a compensator. The pulse width modulator generates a pulse width modulation signal based on an input data value. The synapse array generates a synapse arithmetic signal based on a multiplication operation of the pulse width modulation signal and weight. The oscillator generates an oscillation signal having an output frequency relying on a magnitude of the synapse arithmetic signal. The counter counts the number of pulses included in the oscillation signal to generate counting data. The compensator includes a memory storing reference data having linearly increasing values. The compensator compares the reference data and the counting data to compensate for the counting data. The neuromorphic arithmetic device is realized in a small area by low power and can secure linearity.

Description

뉴로모픽 연산 장치{NEUROMORPHIC ARITHMETIC DEVICE}[0001] NEUROMORPHIC ARITHMETIC DEVICE [0002]

본 발명은 뉴로모픽 연산 장치에 관한 것으로, 좀 더 구체적으로 아날로그 기반의 시냅스 어레이로 구현된 뉴로모픽 연산 장치에 관한 것이다.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 neuromotion computing apparatus 100 includes a serial-to-parallel converter 110, a pulse width modulator 120, a synapse array 130, an oscillator 140, a counter 150, a compensator 160, An accumulator 170, a determiner 180, and a parallel-to-serial converter 190. The serial-to-parallel converter 110, the pulse width modulator 120, the counter 150, the compensator 160, the accumulator 170, the determiner 180 and the parallel-to-serial converter 190 process digital signals Lt; / RTI > The synapse array 130 and the oscillator 140 are components that process analog signals.

직렬-병렬 변환기(110)는 입력 데이터 및 가중치 데이터를 수신할 수 있다. 직렬-병렬 변환기(110)는 입력 데이터 및 가중치 데이터를 수신하기 위한 하나의 수신 단자를 포함할 수 있다. 직렬-병렬 변환기(110)는 시냅스 어레이(130)의 각 시냅스 회로에 신호를 제공하기 위한 복수의 출력 단자를 포함할 수 있다. 입력 데이터 및 가중치 데이터는 복수의 출력 단자에 제공된다. 직렬-병렬 변환기(110)는 입력 데이터 또는 가중치 데이터를 분할하여 복수의 출력 단자에 제공할 수 있다. 입력 데이터는 이미지 데이터일 수 있다.The serial-to-parallel converter 110 may receive input data and weight data. The serial-to-parallel converter 110 may include one receiving terminal for receiving input data and weight data. The serial-to-parallel converter 110 may include a plurality of output terminals for providing signals to respective synapse circuits of the synapse array 130. Input data and weight data are provided to a plurality of output terminals. The serial-to-parallel converter 110 may divide input data or weight data and provide the divided data to a plurality of output terminals. The input data may be image data.

펄스폭 변조기(120)는 직렬-병렬 변환기(110)로부터 입력 데이터 및 가중치 데이터를 수신할 수 있다. 펄스폭 변조기(120)는 직렬-병렬 변환기(110)의 복수의 출력 단자로부터 입력 데이터 및 가중치 데이터를 수신할 수 있다. 펄스폭 변조기(120)는 복수의 펄스폭 변조기를 포함할 수 있다. 예를 들어, 복수의 펄스폭 변조기 각각은 직렬-병렬 변환기(110)의 대응되는 출력 단자와 연결될 수 있다. 복수의 펄스폭 변조기 각각은 시냅스 어레이(130)의 대응되는 시냅스 회로와 연결될 수 있다.The pulse width modulator 120 may receive input data and weight data from the serial-to-parallel converter 110. The pulse width modulator 120 may receive input data and weight data from a plurality of output terminals of the S / P converter 110. The pulse width modulator 120 may comprise a plurality of pulse width modulators. For example, each of the plurality of pulse width modulators may be coupled to a corresponding output terminal of the S / P converter 110. Each of the plurality of pulse width modulators may be coupled to a corresponding synapse circuit of the synapse array 130.

펄스폭 변조기(120)는 입력 데이터 값에 근거하여 펄스폭 변조 신호를 생성한다. 입력 데이터는 바이너리(binary) 데이터를 포함한다. 펄스폭 변조기(120)는 바이너리 데이터 값의 크기에 근거하여 펄스폭의 크기를 결정한다. 예를 들어, 입력 데이터 값의 크기가 255인 경우, 펄스폭의 크기가 크게 변조될 수 있다. 이 경우, 펄스폭 변조 신호가 제공되는 시간이 길 수 있다. 또한, 입력 데이터 값의 크기가 255보다 작은 경우, 펄스폭의 크기는 입력 데이터 값의 크기가 255인 경우의 펄스폭의 크기보다 작을 수 있다. 즉, 펄스폭 변조 신호가 제공되는 시간이 짧을 수 있다. 구체적인 내용은 도 2에서 후술된다.The pulse width modulator 120 generates a pulse width modulated signal based on the input data value. The input data includes binary data. The pulse width modulator 120 determines the magnitude of the pulse width based on the magnitude of the binary data value. For example, if the size of the input data value is 255, the magnitude of the pulse width can be largely modulated. In this case, the time for which the pulse width modulation signal is provided may be long. When the input data value is less than 255, the pulse width may be smaller than the pulse width when the input data value is 255. That is, the time for which the pulse width modulation signal is provided may be short. Specific details will be described later with reference to FIG.

펄스폭 변조기(120)는 펄스폭 변조 신호를 시냅스 어레이(130)에 제공한다. 펄스폭 변조기(120)는 디지털 신호인 입력 데이터를 아날로그 신호인 펄스폭 변조 신호로 변환한다. 펄스폭 변조 신호는 입력 데이터의 값의 크기에 비례하는 펄스폭을 가질 수 있다. 펄스폭 변조기(120)는 가중치 데이터를 아날로그 신호로 변환할 수 있다. 펄스폭 변조기(120)는 가중치 데이터의 값의 크기에 비례하는 펄스폭을 가질 수 있다. The pulse width modulator 120 provides a pulse width modulated signal to the synapse array 130. The pulse width modulator 120 converts input data, which is a digital signal, into a pulse width modulated signal which is an analog signal. The pulse width modulated signal may have a pulse width proportional to the magnitude of the value of the input data. The pulse width modulator 120 may convert the weight data into an analog signal. The pulse width modulator 120 may have a pulse width proportional to the magnitude of the value of the weight data.

시냅스 어레이(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 synapse array 130 may receive a pulse width modulated signal and a weight signal from the pulse width modulator 120. The synapse array 130 may include synapse circuits 131 to 13m having a plurality of rows. The synapse arrays 130 may be arranged in matrix form along the row and column directions. Illustratively, the synapse array 130 in Figure 1 has m rows and includes synaptic circuits having n columns. The synapse circuits 131 in the first row may include n synapse circuits 131_1 to 131_n arranged in a row. The synapse circuits 132 in the second row may include n synapse circuits 132_1 to 132_n arranged in the row direction.

제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 synapse circuits 131 in the first row may receive the first pulse width modulated signal and the first weight signal from the pulse width modulator 120. [ For example, each of the synapse circuits 131_1 to 131_n included in the synapse circuits 131 in the first row may receive the first pulse width modulated signal. The synapse circuits 131_1 to 131_n included in the synapse circuits 131 of the first row can receive signals corresponding to one bit of the first weight signal. For example, the first weight signal may be generated based on n-bit weight data. The synapse circuits 131_1 to 131_n included in the synapse circuits 131 of the first row can receive the first weight signals corresponding to the corresponding digits.

제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 synapse circuits 131 of the first row performs a multiplication operation of a weight corresponding to a corresponding digit (bit) of the first pulse width modulation signal and the first weight signal . Each of the synapse circuits 131_1 to 131_n can perform a partial product by the number of digits. For example, each of the synaptic circuits 131_1 to 131_n may include an AND gate for receiving a first pulse width modulated signal and a weight signal. When both the first pulse width modulation signal and the weight signal are at the high level, the current signal can be output.

제2 행의 시냅스 회로들(132)은 펄스폭 변조기(120)로부터 제2 펄스폭 변조 신호 및 제2 가중치 신호를 수신할 수 있다. 제n 행의 시냅스 회로들(13n)은 펄스폭 변조기(120)로부터 제n 펄스폭 변조 신호 및 제n 가중치 신호를 수신할 수 있다. 제2 행 내지 제n 행의 시냅스 회로들(132~13n)은 제1 행의 시냅스 회로들(131)과 동일한 방식으로 수신된 펄스폭 변조 신호와 가중치 신호의 곱셈 연산을 수행할 수 있다. 다만, 상술한 시냅스 어레이(130)의 연산은 예시적인 것으로 이해될 것이다. 시냅스 어레이(130)는 다양한 방식으로 펄스폭 변조 신호와 가중치 신호의 곱셈 연산을 수행할 수 있다.The synapse circuits 132 in the second row may receive a second pulse width modulated signal and a second weighted signal from the pulse width modulator 120. The synapse circuits 13n in the nth row may receive the n-th pulse width modulation signal and the n-th weight signal from the pulse width modulator 120. [ The synapse circuits 132 to 13n in the second to n-th rows can perform the multiplication operation of the weight signal with the received pulse width modulated signal in the same manner as the synapse circuits 131 in the first row. However, the operation of the above-described synapse array 130 will be understood as an example. The synapse array 130 may perform a multiplication operation of the weighted signal with the pulse width modulated signal in various manners.

시냅스 어레이(130)는 제1 내지 제n 커패시터들(Ca1~Can)을 더 포함할 수 있다. 제1 커패시터(Ca1)는 시냅스 어레이(130)에 포함된 시냅스 회로들 중 제1 열의 시냅스 회로들(131_1~13m_1)과 연결된다. 제2 커패시터(Ca2)는 시냅스 어레이(130)에 포함된 시냅스 회로들 중 제2 열의 시냅스 회로들(131_2~13m_2)과 연결된다. 시냅스 어레이(130)에 포함된 시냅스 회로들 중 동일한 열에 배치된 시냅스 회로들로부터 출력된 전류 신호들은 합산된다. 합산된 전류 신호들인 시냅스 연산 신호는 해당 열에 배치된 시냅스 회로들과 연결된 커패시터에 제공된다.The synapse array 130 may further include first to n-th capacitors Ca1 to Can. The first capacitor Ca1 is connected to the first row of synapse circuits 131_1 to 13m_1 of the synapse circuits included in the synapse array 130. [ The second capacitor Ca2 is connected to the second row of synapse circuits 131_2 to 13m_2 among the synapse circuits included in the synapse array 130. [ The current signals output from the synapse circuits arranged in the same column among the synapse circuits included in the synapse array 130 are summed. A synapse operation signal, which is the summed current signals, is provided to a capacitor connected to the synapse circuits disposed in the column.

예를 들어, 제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 oscillator 140 may include first to nth oscillators 141 to 14n. Each of the first to n < th > oscillators 141 to 14n may be connected to a corresponding one of the first to n < th > capacitors Ca1 to Can. The oscillator 140 generates an oscillation signal based on the synapse operation signal. The first oscillator 141 can generate the first oscillation signal and the second oscillator 142 can generate the second oscillation signal. The first oscillation signal may have a first output frequency that is dependent on the magnitude of the first synapse operational signal. And the second oscillation signal may have a second output frequency that is dependent on the magnitude of the second synapse operational signal. The larger the magnitude of the synapse operation signal, the more the output frequency of the oscillation signal increases. The details will be described later in Fig.

카운터(150)는 제1 내지 제n 카운터들(151~15n)을 포함할 수 있다. 제1 내지 제n 카운터들(151~15n) 각각은 제1 내지 제n 발진기들(141~14n) 중 대응되는 발진기와 연결될 수 있다. 카운터(150)는 발진 신호에 포함된 펄스의 개수를 카운팅한다. 카운터(150)는 카운팅한 결과를 덧셈하여 카운팅 데이터를 생성할 수 있다. 카운팅 데이터는 디지털 신호일 수 있다. 제1 카운터(151)는 제1 발진 신호에 포함된 펄스의 개수를 카운팅하여 제1 카운팅 데이터를 생성할 수 있다. 제2 카운터(152)는 제2 발진 신호에 포함된 펄스의 개수를 카운팅하여 제2 카운팅 데이터를 생성할 수 있다.The counter 150 may include first to nth counters 151 to 15n. Each of the first to nth counters 151 to 15n may be connected to a corresponding one of the first to nth oscillators 141 to 14n. The counter 150 counts the number of pulses included in the oscillation signal. The counter 150 may generate the counting data by adding the counted result. The counting data may be a digital signal. The first counter 151 may generate the first counting data by counting the number of pulses included in the first oscillation signal. The second counter 152 may generate the second counting data by counting the number of pulses included in the second oscillation signal.

발진 신호의 출력 주파수가 클수록 발진 신호에 포함된 펄스의 개수는 증가한다. 발진 신호에 포함된 펄스의 개수가 많을수록, 카운팅 데이터의 값은 증가한다. 즉, 시냅스 연산 신호의 크기가 클수록, 카운팅 데이터의 값은 증가한다. 카운터(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 counter 150 can convert the oscillation signal, which is an analog signal, into counting data, which is a digital signal. Ideally, as the magnitude of the synapse signal increases, the number of pulses in the oscillation signal increases linearly. At this time, the value of the counting data will increase linearly as the magnitude of the synapse operation signal increases.

보상기(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 compensator 160 may include first to nth compensators 161 to 16n. Each of the first to nth compensators 161 to 16n may be connected to a corresponding one of the first to nth counters 151 to 15n. The compensator 160 compares the counting data with the reference data. When the value of the counting data is different from the value of the reference data, the compensator 160 compensates the value of the counting data. For example, the first compensator 161 may receive the first counting data from the first counter 151. [ If the value of the first counting data is different from the value of the first reference data, the first compensator 161 may compensate the first counting data to have the value of the first reference data.

기준 데이터는 보상기(160)에 미리 저장될 수 있다. 보상기(160)는 기준 데이터를 미리 저장하기 위한 메모리를 포함한다. 카운팅 데이터의 값에 따라 기준 데이터의 값은 다를 수 있다. 즉, 보상기(160)는 카운팅 데이터의 값에 따라 비교할 기준 데이터를 복수개 저장할 수 있다. 이러한 복수의 기준 데이터는 시냅스 어레이(130) 또는 발진기(140)의 구동 전압 레벨의 증가에 따라 선형적으로 증가하는 값을 가질 수 있다. 보상기(160)는 비 이상적인 원인에 의하여 비선형적인 값을 갖는 카운팅 데이터를 보정하여 선형적인 출력 데이터를 생성할 수 있다. 예를 들어, 비 이상적인 원인은 시냅스 어레이(130) 또는 발진기(140)와 같은 아날로그 회로에 의하여 유발될 수 있다.The reference data may be stored in the compensator 160 in advance. The compensator 160 includes a memory for storing reference data in advance. The value of the reference data may be different depending on the value of the counting data. That is, the compensator 160 may store a plurality of reference data to be compared according to the value of the counting data. The plurality of reference data may have a linearly increasing value as the driving voltage level of the synapse array 130 or the oscillator 140 increases. The compensator 160 may generate linear output data by correcting the non-linear counting data by non-ideal causes. For example, non-ideal causes may be caused by analog circuitry, such as synapse array 130 or oscillator 140. [

카운팅 데이터에 대응되는 기준 데이터가 없는 경우, 보상기(160)는 기준 데이터가 존재하는 카운팅 데이터를 이용하여 출력 데이터를 생성할 수 있다. 예를 들어, 보상기(160)는 카운팅 데이터의 값과 가장 가까운 두 개의 이웃하는 카운팅 데이터를 추출할 수 있다. 두 개의 이웃하는 카운팅 데이터에 대응되는 두 개의 기준 데이터의 중간 값이 출력 데이터의 값으로 생성될 수 있다. 이 경우, 보상기(160)에 저장되는 기준 데이터의 양이 감소할 수 있다. 즉, 보상기(160)를 구현하기 위한 면적이 감소할 수 있다. 또한, 디지털 방식으로 선형성을 확보하므로, 아날로그 방식으로 오차를 보정하는 방식에 비하여 전력 소모가 감소될 수 있다.If there is no reference data corresponding to the counting data, the compensator 160 may generate output data using the counting data in which the reference data exists. For example, the compensator 160 may extract two neighboring counting data that are closest to the value of the counting data. An intermediate value of two reference data corresponding to two neighboring counting data can be generated as a value of the output data. In this case, the amount of reference data stored in the compensator 160 may decrease. That is, the area for implementing the compensator 160 may be reduced. In addition, since digital linearity is ensured, power consumption can be reduced as compared with a method of correcting an error by an analog method.

누적기(170)는 제1 내지 제n 누적기들(171~17n)을 포함할 수 있다. 제1 내지 제n 누적기들(171~17n) 각각은 제1 내지 제n 보상기들(161~16n) 중 대응되는 보상기와 연결될 수 있다. 누적기(170)는 보상기(160)로부터 출력 데이터를 수신한다. 누적기(170)는 출력 데이터를 저장하기 위한 레지스터를 포함할 수 있다. 예를 들어, 저장된 출력 데이터와 새로운 데이터 사이의 덧셈 연산을 위하여, 누적기(170)는 출력 데이터를 저장할 수 있다. 누적기(170)는 새로운 데이터에 의하여 누산된 출력 데이터를 저장할 수 있다.The accumulator 170 may include first through n-th accumulators 171 through 17n. Each of the first through the n-th accumulators 171 through 17n may be connected to a corresponding one of the first through n-th compensators 161 through 16n. The accumulator 170 receives the output data from the compensator 160. The accumulator 170 may include a register for storing the output data. For example, for the addition operation between the stored output data and the new data, the accumulator 170 may store the output data. The accumulator 170 may store the accumulated output data by the new data.

누적기(170)는 쉬프터를 포함할 수 있다. 제1 내지 제n 누적기들(171~17n) 각각은 제1 내지 제n 쉬프터를 포함할 수 있다. 보상기(160)로부터 생성된 제1 내지 제n 출력 데이터는 서로 다른 자리수에 대응되는 값을 나타낼 수 있다. 예를 들어, 제1 출력 데이터는 첫번째 자리수의 가중치에 대한 부분 적을 합한 결과일 수 있다. 따라서, 제1 쉬프터는 제1 출력 데이터에 2n이 곱해진 결과와 같도록 제1 출력 데이터에 대한 쉬프팅 동작을 수행할 수 있다. 마찬가지로, 제2 쉬프터는 제2 출력 데이터에 2n-1이 곱해진 결과와 같도록 제2 출력 데이터에 대한 쉬프팅 동작을 수행할 수 있다.The accumulator 170 may include a shifter. Each of the first through the n-th accumulators 171 through 17n may include first through nth shifters. The first to n-th output data generated from the compensator 160 may represent values corresponding to different digits. For example, the first output data may be a result of summing the partial products of the weights of the first digits. Thus, the first shifter may perform a shifting operation on the first output data such that the result of multiplying the first output data by 2 < n > Likewise, the second shifter may perform a shifting operation on the second output data such that 2 n-1 is multiplied by the second output data.

결정기(180)는 제1 내지 제n 결정기들(181~18n)을 포함할 수 있다. 제1 내지 제n 결정기들(181~18n) 각각은 제1 내지 제n 누적기들(171~17n) 중 대응되는 누적기와 연결될 수 있다. 결정기(180)는 누적기(170)로부터 누산된 출력 데이터를 수신할 수 있다. 결정기(180)는 누산된 출력 데이터에 활성화 함수를 적용하여 결정 데이터를 생성할 수 있다. 예를 들어, 활성화 함수는 시그모이드(sigmoid) 함수일 수 있다. 활성화 함수에 근거하여 역치 이상(또는 초과)의 누적된 출력 데이터는 증폭되고, 역치 미만(또는 이하)의 누적된 출력 데이터는 감쇄될 수 있다.The determiner 180 may include first to n-th determinators 181 to 18n. Each of the first to n-th determinators 181 to 18n may be connected to a corresponding one of the first to the n-th accumulators 171 to 17n. The determiner 180 may receive the accumulated output data from the accumulator 170. The determiner 180 may generate decision data by applying an activation function to the accumulated output data. For example, the activation function may be a sigmoid function. Based on the activation function, the accumulated output data of more than (or more than) the threshold value is amplified, and the accumulated output data of less than (or less than) the threshold value can be attenuated.

병렬-직렬 변환기(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-th decider 181 to 18n. For example, the parallel-to-serial converter 190 may receive the first to the n-th decision data from the first to the n-th decision units 181 to 18n. The parallel-to-serial converter 190 may generate and output one data (OUTPUT) based on the first to the n-th determination data. For example, the parallel-to-serial converter 190 may sum the first to the n-th determination data to output one data (OUTPUT). The generated data may be provided to another novel Lomographic computation device.

도 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 pulse width modulator 120 of FIG. 2 may be the pulse width modulator 120 of FIG. Referring to FIG. 2, the pulse width modulator 120 receives input data INPUT. The input data INPUT is illustratively shown to be 8 bits of binary data. The pulse width modulator 120 generates the pulse width modulation signal PWM based on the value of the input data INPUT.

입력 데이터(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 oscillator 141 of FIG. 3 may be the first oscillator 141 of FIG. The configuration of the oscillator 141 may be the same as that of the second to the n-th oscillators 142 to 14n in FIG. Referring to FIG. 3, the oscillator 141 may include first through sixth inverters Inv1 through Inv6, a transistor TR1, and a capacitor Ca1. The capacitor Ca1 may be the first capacitor Ca1 of FIG. The output terminal of the oscillator 141 is connected to the gate terminal of the transistor TR1. The initial output value is assumed to be zero.

발진기(141)는 시냅스 연산 신호(Isyn)를 수신한다. 시냅스 연산 신호(Isyn)는 전류 신호일 수 있다. 커패시터(Ca1)의 일단자는 시냅스 연산 신호(Isyn)를 수신하고 타단자는 접지될 수 있다. 커패시터(Ca1)에 시냅스 연산 신호(Isyn)의 적분 값에 비례하는 전압이 형성될 수 있다. 즉, 커패시터(Ca1)는 시냅스 연산 신호(Isyn)에 의하여 충전된다. 커패시터(Ca1)의 일단자는 제1 인버터(Inv1)의 입력 단자에 연결된다. 제1 내지 제6 인버터들(Inv1~Inv6)은 직렬로 연결된다.The oscillator 141 receives the synapse operation signal Isyn. The synapse operation signal Isyn may be a current signal. One terminal of the capacitor Ca1 may receive the synapse operation signal Isyn and the other terminal may be grounded. A voltage proportional to the integral value of the synapse operation signal Isyn can be formed in the capacitor Ca1. That is, the capacitor Ca1 is charged by the synapse operation signal Isyn. One terminal of the capacitor Ca1 is connected to the input terminal of the first inverter Inv1. The first to sixth inverters Inv1 to Inv6 are connected in series.

커패시터(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 oscillator 141 generates an oscillation signal having an output frequency while the capacitor Ca1 repeats charging and discharging.

시냅스 연산 신호(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 oscillator 141. [ The compensator 160 of FIG. 1 may compensate for the non-linear output depending on the characteristics of the oscillator 141 or the synapse array 130.

도 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 compensator 200 of FIG. 4 may be any one of the first through n'th compensators 161 through 16n of FIG. Referring to FIG. 4, the compensator 200 includes a memory 210, a comparator 220, a data compensator 230, a controller 240, and an address generator 250. 4 will be understood as one embodiment for linearly compensating nonlinear data and may be used to compare the reference data Ref stored in the memory 210 with the counting data CDA to compensate for the difference Various configurations are possible.

메모리(210)는 기준 데이터(Ref)를 저장한다. 기준 데이터(Ref)는 시냅스 어레이 또는 발진기의 구동 전압의 증가에 따라 선형적으로 증가하는 데이터 값을 가질 수 있다. 기준 데이터(Ref)는 시냅스 연산 신호(Isyn)의 생성에 관여하는 시냅스 회로들의 개수의 증가에 따라 선형적으로 증가하는 데이터 값을 가질 수 있다. 기준 데이터(Ref)는 카운팅 데이터(CDA)가 보상기(200)에 제공되기 전에 미리 메모리(210)에 저장된다. 기준 데이터(Ref)는 선형적으로 증가 또는 감소하는 복수 개의 데이터를 포함할 수 있다. 메모리(210)는 비교기(220)에 제공되는 카운팅 데이터(CDA)의 값에 대응되는 기준 데이터를 비교기(220)에 출력할 수 있다.The memory 210 stores reference data Ref. The reference data Ref may have a linearly increasing data value as the driving voltage of the synapse array or oscillator increases. The reference data Ref may have a linearly increasing data value as the number of synapse circuits involved in generation of the synapse operation signal Isyn increases. The reference data Ref is stored in advance in the memory 210 before the counting data CDA is provided to the compensator 200. [ The reference data Ref may include a plurality of data linearly increasing or decreasing. The memory 210 may output the reference data corresponding to the value of the counting data CDA provided to the comparator 220 to the comparator 220. [

비교기(220)는 도 1의 카운터(150)로부터 카운팅 데이터(CDA)를 수신한다. 카운팅 데이터(CDA)는 도 1의 발진기(140)에 의하여 생성된 발진 신호의 펄스의 개수를 카운터(150)가 카운팅하여 생성된다. 발진기(140)에 포함된 인버터들의 지연 시간 또는 커패시터의 방전 시간 등에 의하여 카운팅 데이터(CDA)는 비선형적인 값을 가질 수 있다. 비교기(220)는 제1 비교기(221) 및 제2 비교기(222)를 포함할 수 있다.The comparator 220 receives the counting data CDA from the counter 150 of FIG. The counting data CDA is generated by the counter 150 counting the number of pulses of the oscillation signal generated by the oscillator 140 of FIG. The counting data CDA may have a non-linear value depending on the delay time of the inverters included in the oscillator 140 or the discharge time of the capacitor. The comparator 220 may include a first comparator 221 and a second comparator 222.

제1 비교기(221)는 도 1의 카운터(150)로부터 수신한 카운팅 데이터(CDA)와 메모리(210)로부터 수신한 기준 데이터(Ref)를 비교한다. 제1 비교기(221)는 수신한 카운팅 데이터(CDA)의 값에 대응되는 기준 데이터(Ref)를 메모리(210)로부터 읽을 수 있다. 가운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 동일한 경우, 제1 비교기(221)는 카운팅 데이터(CDA) 또는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 이 때, 출력 데이터(ODA)는 도 1의 누적기(170)에 제공될 수 있다.The first comparator 221 compares the counting data CDA received from the counter 150 of FIG. 1 with the reference data Ref received from the memory 210. The first comparator 221 can read from the memory 210 the reference data Ref corresponding to the value of the received counting data CDA. The first comparator 221 outputs the output data ODA having the values of the counting data CDA or the reference data Ref when the value of the downing data CDA is equal to the value of the reference data Ref . At this time, the output data ODA may be provided to the accumulator 170 of FIG.

제2 비교기(222)는 카운팅 데이터(CDA)의 값과 기준 데이터(Ref)의 값이 서로 다른 경우, 카운팅 데이터(CDA)를 수신할 수 있다. 또한, 제2 비교기(222)는 기준 데이터(Ref)를 수신할 수 있다. 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 존재 여부를 판단할 수 있다. 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하는 경우, 제2 비교기(222)는 카운팅 데이터(CDA)의 값을 보상한다. 제2 비교기(222)는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. The second comparator 222 may receive the counting data CDA when the value of the counting data CDA is different from the value of the reference data Ref. Also, the second comparator 222 can receive the reference data Ref. The second comparator 222 can determine whether or not there is the reference data Ref corresponding to the counting data CDA. When there is the reference data Ref corresponding to the counting data CDA, the second comparator 222 compensates the value of the counting data CDA. The second comparator 222 may output the output data ODA having the value of the reference data Ref.

제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하지 않는 경우, 데이터 보상기(230)로부터 보상 데이터(ITP)를 수신할 수 있다. 예를 들어, 제2 비교기(222)가 기준 데이터(Ref)를 수신하지 못하는 경우, 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)가 존재하지 않는다고 판단할 수 있다. 이 때, 비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)의 값과 가장 가까운 두 개의 카운팅 데이터에 대응되는 기준 데이터를 수신할 수 있다. The second comparator 222 may receive the compensation data ITP from the data compensator 230 when the reference data Ref corresponding to the counting data CDA is not present. For example, when the second comparator 222 does not receive the reference data Ref, the second comparator 222 may determine that the reference data Ref corresponding to the counting data CDA does not exist . At this time, the comparator 220 can receive the reference data corresponding to the two counting data closest to the value of the counting data CDA from the memory 210.

비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)보다 작은 값을 갖는 카운팅 데이터 중 가장 인접한 카운팅 데이터에 대응하는 기준 데이터를 수신할 수 있다. 또한, 비교기(220)는 메모리(210)로부터 카운팅 데이터(CDA)보다 큰 값을 갖는 카운팅 데이터 중 가장 인접한 카운팅 데이터에 대응하는 기준 데이터를 수신할 수 있다. 비교기(220)는 이러한 두 개의 기준 데이터를 데이터 보상기(230)에 제공할 수 있다.The comparator 220 may receive reference data corresponding to the nearest counting data out of the counting data having a value smaller than the counting data CDA from the memory 210. [ The comparator 220 may also receive reference data corresponding to the nearest counting data out of the counting data having a value greater than the counting data CDA from the memory 210. [ The comparator 220 may provide these two reference data to the data compensator 230.

데이터 보상기(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 comparator 220. [ For example, the data compensator 230 may generate compensation data ITP having an intermediate value of the two reference data received from the comparator 220. However, the present invention is not limited to this, and the value of the compensation data ITP can be calculated based on the ratio of the distance between the counting data and two adjacent counting data. That is, the compensation data ITP having a value capable of securing the linearity among the values between the two reference data can be generated.

데이터 보상기(230)가 생성한 보상 데이터(ITP)에 근거하여 비교기(220)는 출력 데이터(ODA)를 생성할 수 있다. 카운팅 데이터(CDA)에 대응되는 기준 데이터가 없는 경우, 제2 비교기(222)는 보상 데이터(ITP)의 값을 갖는 출력 데이터(ODA)를 출력할 수 있다. 데이터 보상기(230)를 이용함으로써, 메모리(210)에 저장되는 기준 데이터(Ref)의 양이 감소할 수 있다. 따라서, 보상기(200)를 구현하기 위한 면적이 감소할 수 있다.The comparator 220 can generate the output data ODA based on the compensation data ITP generated by the data compensator 230. [ If there is no reference data corresponding to the counting data CDA, the second comparator 222 may output the output data ODA having the value of the compensation data ITP. By using the data compensator 230, the amount of reference data Ref stored in the memory 210 can be reduced. Thus, the area for implementing the compensator 200 can be reduced.

컨트롤러(240)는 보상기(200)의 구성 요소들을 제어할 수 있다. 예를 들어, 비교기(220)는 컨트롤러(240)의 제어에 따라, 카운팅 데이터(CDA)를 수신하고, 메모리(210)로부터 수신한 기준 데이터(Ref)를 카운팅 데이터(CDA)와 비교할 수 있다. 비교기(220)는 컨트롤러(240)의 제어에 따라, 출력 데이터(ODA)를 생성할 수 있다. 데이터 보상기(230)는 컨트롤러(240)의 제어에 따라, 보상 데이터(ITP)를 생성하여 비교기(220)에 제공할 수 있다.The controller 240 may control the components of the compensator 200. For example, the comparator 220 may receive the counting data CDA and compare the reference data Ref received from the memory 210 with the counting data CDA, under the control of the controller 240. For example, The comparator 220 may generate the output data ODA under the control of the controller 240. [ The data compensator 230 may generate and provide compensation data ITP to the comparator 220 under the control of the controller 240.

어드레스 생성기(250)는 컨트롤러(240)의 제어에 따라, 메모리(210)에 저장되는 기준 데이터(Ref)의 어드레스 정보를 생성한다. 메모리(210)는 어드레스 정보에 근거하여 기준 데이터(Ref)를 해당 어드레스에 저장할 수 있다. 비교기(220)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 어드레스 정보를 이용하여 기준 데이터(Ref)에 대한 읽기 동작을 수행할 수 있다.The address generator 250 generates address information of the reference data Ref stored in the memory 210 under the control of the controller 240. [ The memory 210 may store the reference data Ref at the address based on the address information. The comparator 220 may perform a read operation on the reference data Ref using the address information of the reference data Ref corresponding to the counting data CDA.

도 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 synapse array 130 of FIG. 1 to provide an output signal. For example, the number of synapses may be the number of synaptic circuits involved in generating the synaptic operational signal Isyn provided to the oscillator 141 of FIG. The vertical axis is defined as the output frequency in units of GHz.

보상 전 출력 주파수는 도 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 oscillator 140 of FIG. When the number of synapses is 100, the output frequency before compensation represents 0.526 GHz. When the number of synapses is 200, the output frequency before compensation represents 0.864 GHz. When the number of synapses is 300, the output frequency before compensation represents 1.1 GHz. When the number of synapses is 400, the output frequency before compensation represents 1.25 GHz. When the number of synapses is 500, the output frequency before compensation represents 1.3 GHz. If the number of synapses is 600, the output frequency before compensation represents 1.33 GHz. The change in the output frequency before compensation according to the number of synapses represents a change in the value of the counting data according to the number of synapses. That is, as the number of synapses increases, the value of the counting data increases nonlinearly.

보상 후 출력 주파수는 도 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 compensator 160 of FIG. 1 or the compensator 200 of FIG. When the number of synapses is 100, the output frequency after compensation shows 0.1 GHz. If the number of synapses is 200, the output frequency after compensation is 0.37 GHz. When the number of synapses is 300, the output frequency after compensation shows 0.6 GHz. When the number of synapses is 400, the output frequency after compensation is 0.81 GHz. If the number of synapses is 500, the output frequency after compensation is 1.05 GHz. If the number of synapses is 600, then the output frequency after compensation is 1.33 GHz. The change of the output frequency after compensation according to the number of synapses represents the change of the output data value according to the number of synapses. That is, as the number of synapses increases, the value of the output data linearly increases. Hereinafter, the values of the output data will be described using the reference numerals of the compensator 200 of FIG.

카운팅 데이터(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 memory 210 may store the compensated value as reference data Ref to have linearity as shown in the graph defined by the output frequency after compensation. For example, referring to the graph of FIG. 5, when the output frequency of the oscillation signal is 1.33 GHz, it is unnecessary to compensate the output frequency for ensuring linearity. That is, since the value of the counting data CDA and the value of the reference data Ref are the same, the first comparator 221 can output the output data ODA having the value of the counting data CDA. When the output frequency of the oscillation signal is 1.3 GHz, the output frequency is required to be lower than 1.3 GHz in order to ensure linearity. That is, the value of the counting data CDA is different from the value of the reference data Ref, and the second comparator 222 can output the output data ODA having the value of the reference data Ref.

발진 신호의 출력 주파수가 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 memory 210 when the output frequency of the oscillation signal is between 1.25 GHz and 1.3 GHz. Therefore, the data compensator 230 can receive the reference data corresponding to the counting data when the output frequency of the oscillating signal is 1.25 GHz and the reference data corresponding to the counting data when the output frequency of the oscillating signal is 1.3 GHz . The comparator 220 can output the output data ODA having the intermediate value of the two reference data. Therefore, the linearity of the neuromodule computing apparatus can be secured.

도 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 neuromorphic computing apparatus 100 of FIG. On the basis of the explanation, a driving method of the neuromorphic computing apparatus will be described with reference to the reference numerals of Fig. In step S110, input data and weight data may be input to the S / P converter 110. [ The serial-to-parallel converter 110 may provide input data and weight data to the pulse width modulator 120.

S120 단계에서, 펄스폭 변조기(120)는 펄스폭 변조 신호를 생성한다. 펄스폭 변조기(120)는 입력 데이터의 값의 크기에 따라 펄스폭 변조 신호의 펄스폭을 결정할 수 있다. 입력 데이터의 값의 크기가 클수록, 펄스폭 변조 신호의 펄스폭은 증가한다. 펄스폭 변조기(120)는 펄스폭 변조 신호를 시냅스 어레이(130)에 제공한다. S130 단계에서, 시냅스 어레이(130)는 시냅스 연산 신호를 생성한다. 시냅스 어레이(130)는 펄스폭 변조 신호 및 가중치 신호를 곱셈 연산에 근거하여 전류 신호를 생성한다. 시냅스 어레이(130)는 매트릭스 형태로 배치된 시냅스 회로들을 포함한다. 열 방향으로 배치되는 시냅스 회로들이 생성하는 전류 신호는 합산된다. 합산된 전류 신호에 의하여 시냅스 연산 신호가 생성된다.In step S120, the pulse width modulator 120 generates a pulse width modulated signal. The pulse width modulator 120 can determine the pulse width of the pulse width modulated signal according to the magnitude of the value of the input data. The larger the value of the input data, the greater the pulse width of the pulse width modulated signal. The pulse width modulator 120 provides a pulse width modulated signal to the synapse array 130. In step S130, the synapse array 130 generates a synapse operation signal. The synapse array 130 generates a current signal based on the multiplying operation of the pulse width modulated signal and the weighted signal. The synapse array 130 includes synapse circuits arranged in a matrix form. The current signals generated by the synapse circuits arranged in the column direction are summed. The synaptic operation signal is generated by the summed current signal.

S140 단계에서, 카운터(150)는 시냅스 연산 신호에 근거한 출력 펄스의 개수를 카운팅한다. 발진기(140)는 시냅스 연산 신호를 수신한다. 발진기(140)는 시냅스 연산 신호에 근거하여 발진 신호를 생성한다. 발진 신호는 출력 주파수를 갖고, 출력 주파수는 시냅스 연산 신호의 크기에 의존한다. 즉, 시냅스 연산 신호의 크기가 클수록, 발진 신호의 출력 주파수는 증가한다. 카운터(150)는 출력 주파수에 의하여 형성되는 펄스의 개수를 카운팅한다.In step S140, the counter 150 counts the number of output pulses based on the synapse operation signal. The oscillator 140 receives a synapse operation signal. The oscillator 140 generates an oscillation signal based on the synapse operation signal. The oscillation signal has an output frequency, and the output frequency depends on the magnitude of the synapse operation signal. That is, as the magnitude of the synapse operation signal increases, the output frequency of the oscillation signal increases. The counter 150 counts the number of pulses formed by the output frequency.

S150 단계에서, 카운터(150)는 카운팅 데이터를 생성한다. 카운팅 데이터는 출력 주파수에 의하여 형성되는 펄스의 개수에 근거한 데이터 값을 가질 수 있다. 카운터(150)는 생성된 카운팅 데이터를 보상기(160)에 제공한다. S160 단계에서, 보상기(160)는 출력 데이터를 생성한다. 카운팅 데이터는 시냅스 어레이(130) 또는 발진기(140)의 구동 전압의 변화에 따라 비선형적으로 증가 또는 감소할 수 있다. 보상기(160)는 카운팅 데이터를 보상하여 선형적으로 증가 또는 감소하는 출력 데이터를 생성한다.In step S150, the counter 150 generates counting data. The counting data may have a data value based on the number of pulses formed by the output frequency. The counter 150 provides the generated counting data to the compensator 160. In step S160, the compensator 160 generates output data. The counting data may increase or decrease non-linearly with the change of the driving voltage of the synapse array 130 or the oscillator 140. [ The compensator 160 compensates the counting data to generate output data that linearly increases or decreases.

S170 단계에서, 누적기(170) 또는 결정기(180)는 출력 데이터를 처리한다. 누적기(170)는 출력 데이터를 수신하고, 추가적으로 제공되는 출력 데이터와 덧셈 연산을 수행하여 누산된 출력 데이터를 생성할 수 있다. 결정기(180)는 누산된 출력 데이터에 활성화 함수를 적용하여 결정 데이터를 생성할 수 있다.In step S170, the accumulator 170 or the determiner 180 processes the output data. The accumulator 170 may receive the output data and may perform an addition operation with the output data that is additionally provided to generate the accumulated output data. The determiner 180 may generate decision data by applying an activation function to the accumulated output data.

도 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 compensator 160 of FIG. 1 or the compensator 200 of FIG. For convenience of explanation, a method of generating output data will be described with reference to the reference numerals in Fig. In step S161, the first comparator 221 can compare the counting data CDA and the reference data Ref. The first comparator 221 may receive the reference data Ref corresponding to the counting data CDA from the memory 210. [

카운팅 데이터(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 first comparator 221 may output the counting data CDA as output data ODA. If the value of the counting data CDA differs from the value of the reference data Ref, the process proceeds to step S163. In step S163, the second comparator 222 may determine whether or not the reference data Ref corresponding to the counting data CDA is present. If there is the reference data Ref corresponding to the counting data CDA, step S164 is performed. If there is no reference data Ref corresponding to the counting data CDA, step S165 is performed.

S164 단계에서, 제2 비교기(222)는 기준 데이터(Ref)를 이용하여 카운팅 데이터(CDA)를 보상할 수 있다. 즉, 제2 비교기(222)는 카운팅 데이터(CDA)에 대응되는 기준 데이터(Ref)의 값을 갖는 출력 데이터(ODA)를 생성할 수 있다. S166 단계에서, 제2 비교기(222)는 보상된 카운팅 데이터, 즉 출력 데이터(ODA)를 출력할 수 있다.In step S164, the second comparator 222 may compensate the counting data CDA using the reference data Ref. That is, the second comparator 222 can generate the output data ODA having the value of the reference data Ref corresponding to the counting data CDA. In step S166, the second comparator 222 may output the compensated counting data, i.e., the output data ODA.

S165 단계에서, 제2 비교기(222) 및 데이터 보상기(230)는 중간 값을 이용하여 카운터 데이터를 보상할 수 있다. 제2 비교기(222)는 메모리(210)로부터 수신된 카운팅 데이터(CDA)에 인접하는 두 개의 카운팅 데이터에 대응되는 두 개의 기준 데이터를 수신할 수 있다. 데이터 보상기(230)는 두 개의 기준 데이터의 중간 값을 갖는 보상 데이터(ITP)를 생성할 수 있다. 제2 비교기(222)는 보상 데이터(IPT)의 값을 갖는 출력 데이터(ODA)를 생성할 수 있다. S166 단계에서, 제2 비교기(222)는 보상된 카운팅 데이터, 즉 출력 데이터(ODA)를 출력할 수 있다.In step S165, the second comparator 222 and the data compensator 230 may use the intermediate value to compensate the counter data. The second comparator 222 may receive two reference data corresponding to the two counting data adjacent to the counting data CDA received from the memory 210. [ The data compensator 230 may generate compensation data ITP having an intermediate value of the two reference data. The second comparator 222 may generate the output data ODA having the value of the compensation data IPT. In step S166, the second comparator 222 may output the compensated counting data, i.e., the output data ODA.

위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.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.
KR1020170088008A 2017-07-11 2017-07-11 Neuromorphic arithmetic device KR102420362B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160379110A1 (en) * 2015-06-29 2016-12-29 International Business Machines Corporation Neuromorphic processing devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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