KR20180088258A - 뉴로모픽 연산 장치 - Google Patents
뉴로모픽 연산 장치 Download PDFInfo
- Publication number
- KR20180088258A KR20180088258A KR1020170113563A KR20170113563A KR20180088258A KR 20180088258 A KR20180088258 A KR 20180088258A KR 1020170113563 A KR1020170113563 A KR 1020170113563A KR 20170113563 A KR20170113563 A KR 20170113563A KR 20180088258 A KR20180088258 A KR 20180088258A
- Authority
- KR
- South Korea
- Prior art keywords
- current
- metal line
- pulses
- frequency
- capacitance
- 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
-
- G06N99/005—
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 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성될 수 있다. 메탈 라인은 전류에 의한 전하가 저장되는 메탈라인 커패시터를 포함할 수 있다. 오실레이터는 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성한다. 비교기는 복수의 펄스들의 주파수와 타깃 주파수를 비교하고, 비교 결과에 기초하여 제어 신호를 생성할 수 있다. 커패시턴스 칼리브레이터는 제어 신호에 기초하여, 메탈라인 커패시터의 커패시턴스 값을 조절할 수 있다.
Description
본 발명은 뉴로모픽 회로에 관한 것으로, 좀 더 상세하게는, 연산 오차를 보정하도록 구성된 뉴로모픽 연산 장치에 관한 것이다.
뉴로모픽 연산 장치는 인간의 신경계 또는 뇌를 모방하여 정보를 처리하는 장치이다. 뉴로모픽 연산 장치는 인공 지능 기술과 관련된 딥 러닝(deep learning) 또는 머신 러닝(machine learning)에 기초하는 연산 블록과, 연산 블록을 제어하는 제어 블록을 포함한다. 뉴로모픽 연산 장치는 복수의 뉴런들의 2차원 혹은 3차원적 연결로 정의될 수 있다. 각각의 뉴런은, 생물학적 뉴런의 구성 요소와 동일하게, 축색돌기(axon), 수상돌기(dendrite), 및 세포 몸체(soma)에 해당하는 회로로 구성될 수 있다. 특히, 뉴런과 뉴런 사이를 연결하는 시냅스(synapse) 회로에서 연산이 실행된다.
뉴로모픽 연산 장치에 입력된 정보를 병렬적으로 그리고 신속하게 처리하기 위하여 아날로그 방식의 회로가 적용될 수 있다. 일반적으로, 아날로그 방식으로 구현된 뉴로모픽 연산 장치의 시냅스 회로에서, 수상돌기를 구현하기 위해, 메탈 라인이 자체적으로 가지고 있는 메탈 라인 커패시터가 이용된다. 오실레이터는 메탈 라인 커패시터에 충전된 전하들에 기초하는 펄스들을 생성할 수 있으며, 펄스들이 카운팅 됨으로써, 합연산이 수행된다.
그러나, 메탈 라인 커패시터의 커패시턴스 값은 실제 설계 당시 의도했던 값과 다를 수 있다. 이는 뉴로모픽 연산 장치의 제조 공정에서 야기되는 것으로써, 오실레이터에 의해 출력되는 펄스들의 주파수 편차를 초래한다. 그러므로, 시냅스 회로들에 의해 수행된 곱연산들의 합연산의 부정확성을 야기한다. 그러므로, 오실레이터의 주파수 편차를 해소하는 것은, 뉴로모픽 연산 장치의 정확도 및 신뢰성 향상을 위해 매우 중요한 문제이다.
본 발명의 목적은, 메탈 라인에서 발생하는 커패시턴스의 부정확성에 의한 연산 오차를 보정하는 뉴로모픽 연산 장치를 제공하는데 있다.
본 발명의 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 메탈라인 커패시터의 커패시턴스 값을 조절하도록 구성되는 커패시턴스 칼리브레이터를 포함할 수 있다.
예를 들어, 상기 커패시턴스 칼리브레이터는, 서로 병렬로 연결되는 복수의 커패시터들, 그리고 상기 복수의 커패시터들 각각에 대응하는 복수의 스위치들을 포함할 수 있다. 그리고 상기 메탈 라인 커패시터의 커패턴스 값이 타깃 값이 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다. 그리고, 상기 복수의 커패시터들은 지수적으로 증가하는 커패시턴스 값들을 가질 수 있다.
예를 들어, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다. 예를 들어, 상기 시냅스 회로는, 상기 전류를 생성하는 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력할 수 있다. 그리고, 상기 메탈라인 커패시터는 상기 메탈라인이 자체적으로 보유하는 커패시턴스에 대응할 수 있다.
본 발명의 다른 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 보조 전류원을 포함할 수 있다.
예를 들어, 상기 보조 전류원은, 서로 병렬로 연결되는 복수의 전류원들, 그리고 상기 복수의 전류원들 각각에 대응하는 복수의 스위치들을 포함할 수 있다. 그리고, 상기 시냅스 회로는, 주 전류를 생성하는 주 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 복수의 전류원들 중 적어도 일부와 상기 전류를 출력할 수 있다. 그리고, 상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다.
예를 들어, 상기 복수의 전류원들은 지수적으로 증가하는 전류 값들을 가질 수 있다. 그리고, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다.
본 발명의 또 다른 실시 예에 따른 뉴로모픽 연산 장치는, PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로, 상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인, 상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터, 그리고 상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성될 수 있다.
예를 들어, 상기 바이어스 생성기는, 전원 전압을 제공받는 복수의 트랜지스터들, 상기 복수의 전류원들 중 적어도 일부의 각각에 대응하는 복수의 스위치들, 그리고 기준 전압 생성기를 포함하되, 상기 복수의 트랜지스터들의 게이트 전극들은, 상기 기준 전압 생성기에 의해 생성되는 기준 전압이 출력되는 단자와 공통으로 연결될 수 있다. 그리고, 상기 시냅스 회로는, 게이트 전극이 상기 복수의 트랜지스터들의 상기 게이트 전극들에 연결되는 트랜지스터를 포함하는 전류원, 그리고 상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되, 상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력할 수 있다.
예를 들어, 상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 될 수 있다. 그리고, 상기 뉴로모픽 연산 장치는, 입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터, 상기 복수의 펄스들을 카운팅 하는 카운터, 상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기, 그리고 상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함할 수 있다.
본 발명에 실시 예에 따르면, 커패시터의 커패시턴스 값을 조절함으로써 오실레이터의 주파수 편차를 보정할 수 있다.
본 발명에 다른 실시 예에 따르면, 시냅스 회로에 보조 전류원을 제공함으로써 오실레이터의 주파수 편차를 보정할 수 있다.
본 발명에 또 다른 실시 예에 따르면, 바이어스 생성기를 이용하여 시냅스 회로의 전류를 조절함으로써 오실레이터의 주파수 편차를 보정할 수 있다.
도 1은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 2는 도 1에 도시된 PWM 컨버터들의 동작을 보여주는 도면이다.
도 3은 도 1에 도시된 시냅스 회로들의 구성을 예시적으로 보여주는 블록도이다.
도 4는 도 1에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 7은 도 6에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 10은 도 9에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 2는 도 1에 도시된 PWM 컨버터들의 동작을 보여주는 도면이다.
도 3은 도 1에 도시된 시냅스 회로들의 구성을 예시적으로 보여주는 블록도이다.
도 4는 도 1에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 7은 도 6에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다.
도 10은 도 9에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 통상의 기술자 의해 수행될 수 있다. 더욱이, 명확성 및 간결성을 위하여 잘 알려진 기능들 및 구조들에 대한 설명들은 생략된다. 본 명세서에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 계층(layer) 등의 용어를 참조하여 설명되는 구성 요소들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(Micro Electro Mechanical System; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기술 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(100)는 복수의 PWM 컨버터들(111~11n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(120), 커패시턴스 칼리브레이터(130), 오실레이터들(140), 카운터들(150), 비교기(160), 및 합산기(170)를 포함할 수 있다.
복수의 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)에 의해 활성화될 수 있다.
시냅스 회로 어레이(120)는 행과 열 방향으로 배치되는 복수의 시냅스 회로들(11~n8)을 포함할 수 있다. 예시적으로, 시냅스 회로들은 n개의 행들과 8개의 열들로 배치되는 것으로 도시되었으나, 이에 한정되지 않는다. 복수의 시냅스 회로들(11~n8)은 복수의 PWM 신호들(PWM1~PWMn)을 각각 수신할 수 있다. 예를 들어, 시냅스 회로 어레이(120)의 제 1 행에 배치되는 시냅스 회로들(11~18) 각각은 제 1 PWM 신호(PWM1)를 수신할 수 있다. 시냅스 회로 어레이(120)의 제 2 행에 배치되는 시냅스 회로들(21~28) 각각은 제 2 PWM 신호(PWM2)를 수신할 수 있다. 다른 행들에 배치되는 시냅스 회로들도 유사하다.
PWM 신호들(PWM1~PWMn)이 각각 수신되는 회선들은 신경세포의 축색돌기(axon)에 대응할 수 있다. 복수의 시냅스 회로들(11~n8)은 가중치들(W1~Wn)을 각각 수신할 수 있다. 또는, 가중치들(W1~Wn)은 시냅스 회로들(11~n8) 각각에 저장되어 있는 값일 수 있다. 예를 들어, PWM 신호들(PWM1~PWMn)은 곱해지는 수인 피승수(multiplicand)일 수 있다. 그리고, 가중치들(W1~Wn)은 곱하는 수인 승수(multiplier)일 수 있다.
복수의 시냅스 회로들(11~n8) 각각은 곱연산을 수행하는 곱셈기로써 동작할 수 있다. 시냅스 회로 어레이(120)는 복수의 승수들과 복수의 피승수들에 대한 복수의 곱연산들을 수행하도록 구성될 수 있다. 예를 들어, 복수의 시냅스 회로들(11~n8) 각각은 곱연산을 수행하기 위한 전류원, 논리 게이트, 및 스위치를 포함할 수 있다. 각각의 시냅스 회로에 의해 연산된 곱셈 결과는 전류로써 출력될 것이다.
나아가, 제 1 행에 배치되는 시냅스 회로들(11~18)은 제 1 피승수와 제 1 승수에 대한 제 1 곱연산을 수행하도록 구성될 수 있다. 예를 들어, 시냅스 회로들(11~18) 각각은 제 1 피승수로써 제 1 PWM 신호(PWM1)를 수신할 수 있다. 시냅스 회로들(11~18)은 제 1 승수를 수신할 수 있다. 또는, 제 1 승수는 각각의 시냅스 회로에 미리 저장되어 있을 수 있다.
다만, 각각의 시냅스 회로는 제 1 승수 중 하나의 비트만을 수신할 수 있다. 예를 들어, 제 1 승수가 8비트의 바이너리 입력이라고 가정하면, 시냅스 회로(11)는 제 1 승수의 MSB (Most Significant Bit)를 저장할 수 있으며, 시냅스 회로(18)는 제 1 승수의 LSB (Least Significant Bit)를 저장할 수 있다. 시냅스 회로들(12~17)은 제 1 승수의 MSB와 LSB 사이의 나머지 비트들을 순차적으로 저장할 수 있다.
시냅스 회로들(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)에 대해서도 유사하게 적용될 것이다.
하나의 컬럼에 배치되는 복수의 시냅스 회로들(예컨대, 첫 번째 컬럼의 11~n1)을 연결하는 메탈 라인이 자체적으로 가지고 있는 메탈 라인 커패시터는, 곱연산들에 대한 합연산을 수행하는데 덧셈기로써 동작할 수 있다. 각각의 메탈 라인이 가지고 있는 커패시턴스 성분은 메탈 라인 커패시터(CML)로써 도시되었다. 덧셈 결과는 각각의 컬럼 라인이 가지고 있는 메탈 라인 커패시터(CML)에 저장되는, 시냅스 회로들로부터 출력되는 전류에 의한 전하량에 대응할 것이다.
커패시턴스 칼리브레이터(130)는 메탈 라인 커패시터(CML)의 커패시턴스 값을 조절하도록 구성될 수 있다. 메탈 라인 커패시터가 원래 목표로 했던 커패시턴스 값을 갖도록 보정됨으로써, 오실레이터들(140)의 주파수 편차가 보정될 수 있다. 예를 들어, 커패시턴스 칼리브레이터(130)는 복수의 커패시터들을 포함할 수 있다. 커패시턴스 칼리브레이터(130)의 구성 및 상세한 동작은 도 4에서 상세하게 후술될 것이다.
오실레이터들(140)은 각각이 하나의 메탈 라인에 연결되는 복수의 오실레이터들을 포함할 수 있다. 각각의 오실레이터는 메탈 라인 커패시터(CML)에 저장된 전하에 기초하여 펄스들을 생성할 수 있다. 메탈 라인 커패시터(CML)에 저장된 전하는 복수의 시냅스 회로들에 의한 곱연산들의 합연산 결과에 대응하므로, 오실레이터에 의해 생성되는 펄스들은 합연산 결과에 대응할 수 있다.
카운터들(150)은 복수의 오실레이터들(140)에 의해 생성되는 펄스들을 카운팅할 수 있다. 예를 들어, 카운터들(150)은 메탈 라인들 각각에 연결되는 복수의 카운터들(151~158)을 포함할 수 있다.
비교기(160)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(160)는 비교 결과에 기초하여 커패시턴스 칼리브레이터(130)를 제어하기 위한 제어 신호(CS)를 생성한다. 비교기(160)의 상세한 동작은 도 4에서 후술될 것이다.
합산기(170)는 쉬프팅 된 디지털 값들을 더할 수 있으며, 합산 결과(OUTPUT)를 출력할 수 있다. 합산기(170)는 복수의 디지털 값들을 더하여 그 결과를 출력할 수 있는 다양한 논리 소자들로 구성될 수 있다.
다만, 카운터들(150)로부터 출력되는 디지털 값들은, 승수와 피승수에 대해 수행된 부분 적(partial product)이 몇 번째 비트에 대한 연산인지가 고려되지 않은 것이다. 따라서, 온전한 연산 결과를 얻기 위해서는 카운터들(180)로부터 출력되는 디지털 값들에 대해 적절한 쉬프팅 (또는 레벨 쉬프팅)이 수행되어야 한다.
예를 들어, 카운터(151)로부터 출력되는 디지털 값은, 피승수들과, 승수들의 MSB들에 대한 부분 적을 합한 결과이다. 따라서, 카운터(151)로부터 출력되는 디지털 값에 대해 27(즉, 128)이 곱해져야 한다. 예를 들어, 카운터(158)로부터 출력되는 디지털 값은, 피승수들과, 승수들의 LSB들에 대한 부분 적을 합한 결과이다. 따라서, 카운터(158)로부터 출력되는 디지털 값에 대해 20(즉, 1)이 곱해져야 한다. 다른 카운터들(152~157)로부터 출력되는 디지털 값들에 대해서도 이와 유사하게 쉬프팅이 수행되어야 한다. 이러한 쉬프팅은, 예컨대, 레벨 쉬프터(미도시) 등에 의해 수행될 수 있다.
이상 설명된 실시 예에 따르면, 오실레이터에 의한 펄스들의 카운팅 값과 원래 의도했던 카운팅 값이 비교될 수 있다. 그리고, 비교 결과에 기초하여 각각의 메탈 라인의 메탈 커패시턴스 값이 원래 목표로 했던 값이 되도록 커패시턴스 칼리브레이터(130)가 제어될 수 있다. 그 결과, 오실레이터(140)로부터 출력되는 펄스들의 주파수가 원래 목표로 했던 값이 될 수 있다. 그러므로, 정확한 곱연산과 합연산을 수행하도록 구성되는 뉴로모픽 연산 회로가 제공될 수 있다.
도 2는 도 1에 도시된 PWM 컨버터들의 동작을 보여주는 도면이다. 복수의 컨버터들(111~11n) 중 제 1 PWM 컨버터(111)의 동작이 예시적으로 도시되었으며, 다른 컨버터들(112~11n)의 구성 및 동작도 제 1 PWM 컨버터(111)와 실질적으로 동일하다.
제 1 PWM 컨버터(111)는 제 1 입력(INPUT1)을 입력받아 제 1 PWM 신호(PWM1)를 생성할 수 있다. 예시적으로, 제 1 입력(INPUT1)은 8비트의 이진수인 것으로 도시되었다. 제 1 PWM 컨버터(111)에 입력되는 이진수들과, 제 1 PWM 컨버터(111)로부터 출력되는 PWM 신호들의 파형이 예시적으로 도시되었다. 예를 들어, 제 1 PWM 컨버터(111)는 입력되는 이진수의 로직 하이 구간에서 비트 '1'을 출력할 수 있으며, 입력되는 이진수의 로직 로우 구간에서 비트 '0'을 출력할 수 있다.
도 3은 도 1에 도시된 시냅스 회로들의 구성을 예시적으로 보여주는 블록도이다. 도시의 간략화를 위해, 시냅스 회로들(11~n1) 중 제 1 메탈 라인(ML1)에 연결된 제 1 및 제 n 시냅스 회로들(11, n1)만이 도시되었다. 제 1 시냅스 회로(11)는 AND 게이트, 제 1 전류원(CS1), 및 제 1 스위치(SW1)를 포함할 수 있다. 제 n 시냅스 회로(n1)는 AND 게이트, 제 n 전류원(CSn), 및 제 n 스위치(SWn)를 포함할 수 있다.
시냅스 회로들(11~n1)의 AND 게이트들은, PWM 컨버터들(도 1 참조, 111~11n)에 의해 생성된 PWM 신호들(PWM1~PWMn)을 각각 입력받을 수 있다. 예를 들어, PWM 신호들(PWM1~PWMn)은 곱셈 연산에서 곱해지는 수인 피승수일 수 있다. 한편, 가중치들(W1~Wn)도 시냅스 회로들(11~n1)의 AND 게이트들로 각각 입력될 수 있다. 예를 들어, 가중치들(W1~Wn)은 곱하는 수인 승수일 수 있다. 예를 들어, 가중치들(W1~Wn)은 외부로부터 입력되거나, 시냅스 회로들(11~n1) 내부에 저장되어 있을 수 있다.
시냅스 회로들(11~n1)은 복수의 곱 연산들을 수행할 수 있다. 예를 들어, 제 1 메탈 라인(ML1)에 연결된 제 1 시냅스 회로(11)는 승수(PWM1)와 피승수(W1)에 대한 제 1 곱연산을 수행할 수 있다. 유사하게, 제 1 메탈 라인(ML1)에 연결된 제 n 시냅스 회로(n1)는 승수(PWMn)와 피승수(Wn)에 대한 제 n 곱연산을 수행할 수 있다. 여기서, 제 1 곱연산의 결과는 전류 I1로 나타날 수 있으며, 제 n 곱연산의 결과는 전류 In로 나타날 수 있다. 결국에는, 제 1 곱연산 내지 제 n 곱연산의 합은 전류 I1~In의 합으로 나타날 것이다.
스위치들(SW1~SWn) 각각은, 시냅스 회로들(11~n1) 각각에 구비된 AND 게이트들에 의해 수행된 연산 결과에 따라 스위칭-온 되거나 스위칭-오프 될 수 있다. 예를 들어, AND 게이트에 의해 수행된 연산 결과가 논리 '1'이면, 스위치는 스위칭-온 될 것이며, AND 게이트에 의해 수행된 연산 결과가 논리 '0'이면, 스위치는 스위칭-오프 될 것이다. 스위치들(SW1~SWn)이 스위칭-온 됨으로써, 전류원들(CS1~CSn)에 의해 생성된 전류는 제 1 메탈 라인(ML1)을 통하여 흐를 것이다.
전류원들(CS1~CSn)은, 제 1 메탈 라인 커패시터(CML1)에 저장되는 전하에 의한 전압 레벨이 선형적으로 증가하도록 구성될 수 있다. 일반적으로, 커패시터와 같은 저장 소자가 충전될 때, 커패시터 양단의 전압 레벨은 비선형적으로 증가한다. 따라서, 제 1 메탈 라인 커패시터(CML1) 의 선형성이 보장되지 않는다면, 전류들 I1~In의 합은 제 1 곱연산 내지 제 n 곱연산의 합을 나타내지 않을 것이다. 그러나, 전류원들(CS1~CSn)이 메탈 라인 커패시터(CML)의 선형성을 보장하도록 구성되기 때문에, 제 1 곱연산 내지 제 n 곱연산의 합은 전류 I1~In의 합을 나타낼 수 있다.
도 4는 도 1에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 4에는 커패시턴스 칼리브레이터(131), 오실레이터(141), 카운터(151), 및 비교기(161)의 예시적인 구성이 도시되었다. 칼리브레이터(131)는 도 1의 칼리브레이터(130) 중 제 1 메탈 라인(ML1)에 연결된 칼리브레이터이다. 오실레이터(141)는 도 1에 도시된 오실레이터들(140) 중 제 1 메탈 라인(ML1)에 연결된 오실레이터이다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 1 내지 도 3을 함께 참조하여 설명하기로 한다.
제 1 메탈 라인(ML1)에 연결된 뉴로모픽 시냅스 회로들(11~n1) 각각에 의한 곱연산들은 전류들의 합(I1+I2+…+In)으로 나타낼 수 있다. 전류들(I1+I2+…+In)에 의한 전하들은 제 1 메탈 라인 커패시터(CML1)에 저장될 것이다.
커패시턴스 칼리브레이터(131)는 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값을 획득하기 위하여 구성되는 복수의 커패시터들을 포함할 수 있다. 예를 들어, 커패시턴스 칼리브레이터(131)는 병렬로 연결된 복수의 커패시터들(C1~Cn)과 복수의 스위치들(SW1~SWn)을 포함할 수 있다. 예시적으로, 병렬로 연결되는 커패시터들(C1~Cn)이 도시되었으나, 직렬로 연결되거나, 직렬 및 병렬의 조합으로 구성되는 다양한 커패시터들이 적용될 수 있다.
커패시턴스 칼리브레이터(131)는 제어 신호(CS)의 제어에 의하여 적절히 스위칭 온 될 수 있다. 복수의 커패시터들(C1~Cn) 중 스위칭-온 된 일부의 커패시터(들)과 제 1 메탈 라인 커패시터(CML1)에 의하여 원래 의도했던 커패시턴스 값이 획득될 수 있다. 예를 들어, 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값은 원래 의도되었던 커패시턴스 값보다 작도록 설계될 수 있다.
오실레이터(140)는 제 1 메탈 라인 커패시터(CML1)에 저장되는 전하의 변화에 따라 펄스들을 생성하도록 구성될 수 있다. 예를 들어, 오실레이터(140)는 복수의 반전 증폭기들 (또는 인버터)을 포함할 수 있다. 이러한 링 오실레이터로 구현된 오실레이터(140)의 출력은 스위치(SW)를 스위칭-온 시키거나 스위칭-오프 시킬 것이다. 그 결과, 제 1 메탈 라인 커패시터(CML1)에 저장된 전하는 충전과 방전을 반복할 수 있으며, 펄스들이 생성될 것이다. 그러나, 본 도면에 도시된 오실레이터(140)의 구성은 예시적인 것이고, 그 구성은 이에 한정되지 않는다.
카운터(150)는 오실레이터(140)로부터 출력되는 펄스들을 카운팅할 수 있다. 제 1 메탈 라인 커패시터(CML1)가 충전과 방전을 반복함으로써, 노드 N을 통하여 펄스들이 출력될 것이다. 카운터(150)는 (예컨대, 기준 주기 동안) 카운팅 된 값을 비교기(161)로 전달할 수 있다.
비교기(161)는 카운팅 된 값과 타깃 값을 비교할 수 있다. 예를 들어, 타깃 값은 뉴로모픽 연산 장치를 설계할 당시 원래 의도되었던 제 1 메탈 라인(ML1)이 자체적으로 포함하는 커패시턴스 값에 대응할 수 있다. 그러나, 공정 상의 이유 등으로 인하여 원래 의도되었던 제 1 메탈 라인(ML1)의 커패시턴스 값과 실제 측정 값은 다를 수 있다. 비교기(161)는, 비교 결과에 기초하여, 카운트 값과 타깃 값을 일치시키는 커패시턴스 값을 획득하기 위하여, 스위치들(SW1~SWn)을 제어하는 제어 신호(CS)를 생성할 수 있다.
일반적인 뉴로모픽 연산 회로에 의하면, 메탈 라인 커패시터의 실제 커패시턴스 값과 의도하였던 커패시턴스 값이 차이 때문에, 복수의 시냅스 회로들에 의한 곱연산들의 합연산을 정확하게 도출할 수 없었다. 그러나, 본 발명과 같이 커패시턴스 칼리브레이터를 제공하여 원하는 메탈 라인 커패시턴스 값을 획득함으로써, 합연산의 정확도를 향상시킬 수 있다.
도 5는 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 1 내지 도 4를 함께 참조하여 설명하기로 한다.
S110 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.
S120 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다.
S130 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 커패시턴스 값이 설정될 수 있다. 예를 들어, 도 4의 커패시턴스 칼리브레이터(131)를 구성하는 복수의 커패시터들 중 일부가 적절히 스위칭-온 됨으로써, 제 1 메탈 라인 커패시터(CML1)의 커패시턴스 값과 함께, 원하는 커패시턴스 값이 획득될 수 있다.
도 6은 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(200)는 복수의 PWM 컨버터들(211~21n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(220), 오실레이터들(240), 카운터들(250), 비교기(260), 합산기(170), 및 보조 전류원(280)을 포함할 수 있다.
본 실시 예에서 설명되는 뉴로모픽 연산 장치(200)의 구성 요소들 중, 보조 전류원(280)을 제외한 나머지 구성 요소들은 도 1 내지 도 6을 통하여 설명된 것들과 실질적으로 동일하거나 유사하다. 그러므로, 중복되는 설명은 생략하기로 한다.
비교기(260)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(260)는 비교 결과에 기초하여 보조 전류원(280)을 제어하기 위한 제어 신호(CS)를 생성한다.
보조 전류원(260)은 제어 신호(CS)에 기초하여 시냅스 회로들(11~n8) 각각이 생성하는 전류의 크기를 조절하도록 구성될 수 있다. 예를 들어, 보조 전류원(260)은, 시냅스 회로들(11~n8) 각각이 다양한 크기의 전류를 생성하도록, 복수의 전류원들을 포함할 수 있다. 복수의 전류원들 각각은 제어 제어 신호(CS)에 기초하여 선택적으로 제공될 수 있다.
보조 전류원(260)을 구성하는 전류원들이 선택적으로 적절히 제공됨으로써, 메탈 라인 커패시터(CML)로 제공되는 전류의 양도 적절히 가변할 수 있다. 따라서, 가변하는 전류의 크기에 따라 오실레이터(240)의 주파수는 가변하므로, 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 주파수의 카운팅 횟수가 획득될 수 있다.
도 7은 도 6에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 6에는 제 1 메탈 라인(ML1) 에 연결되는 시냅스 회로(11), 오실레이터(241), 및 보조 전류원(280)이 도시되었다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 6을 함께 참조하여 설명하기로 한다.
보조 전류원(280)은 복수의 보조 전류원들(SCS1~SCSn)을 포함할 수 있다. 예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각이 시냅스 회로(11)에 선택적으로 제공되도록 복수의 보조 스위치들(SSW1~SSWn)이 제공될 수 있다.
예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각은 서로 같은 크기의 보조 전류들을 생성하거나, 또는 서로 다른 크기의 보조 전류들을 생성하도록 구성될 수 있다. 예를 들어, 복수의 보조 전류원들(SCS1~SCSn) 각각이 서로 다른 크기의 보조 전류들을 생성하도록 구성되는 경우, 복수의 보조 전류원들(SCS1~SCSn) 각각이 생성하는 전류의 크기는 지수적으로 증가할 수 있다.
시냅스 회로(11)에 기본적으로 제공되는 (CS1에 의한) 전류에 더하여, 복수의 보조 전류원들(SCS1~SCSn) 중 적어도 일부가 제공됨으로써, 시냅스 회로(11)로부터 출력되는 전류(I1)의 크기가 증가하거나 감소할 수 있다. 결과적으로, 증가하거나 감소한 전류(I1)이 크기에 의하여, 오실레이터(241)에 의해 생성되는 펄스들의 주파수가 변함으로써, 원하는 카운팅 값을 획득할 수 있다.
도 8은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 6 내지 도 7을 함께 참조하여 설명하기로 한다.
S210 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.
S220 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다.
S230 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 전류(I1)의 크기가 설정될 수 있다. 예를 들어, 도 7의 보조 스위치들(SSW1~SSWn) 중 적어도 일부가 적절히 스위칭-온 됨으로써, 전류원(SC1)과 보조 전류원들(SCS1~SCSn)에 의한 전류들 중 적어도 일부가 시냅스 회로(11)로부터 출력될 수 있다. 그 결과, 뉴로모픽 시냅스 회로를 설계할 당시 원래 의도되었던 타깃 주파수를 갖는 펄스들이 오실레이터(241)로부터 출력될 수 있다.
도 9는 본 발명의 실시 예에 따른 뉴로모픽 연산 장치를 보여주는 블록도이다. 뉴로모픽 연산 장치(300)는 복수의 PWM 컨버터들(311~31n), 복수의 시냅스 회로들(11~n8)을 포함하는 시냅스 회로 어레이(320), 오실레이터들(340), 카운터들(350), 비교기(360), 합산기(370), 및 바이어스 생성기(390)을 포함할 수 있다.
본 실시 예에서 설명되는 뉴로모픽 연산 장치(300)의 구성 요소들 중, 바이어스 생성기(390)을 제외한 나머지 구성 요소들은 도 1 내지 도 6을 통하여 설명된 것들과 실질적으로 동일하거나 유사하다. 그러므로, 중복되는 설명은 생략하기로 한다.
비교기(360)는 각각의 카운터에 의한 카운팅 값과 원래 의도되었던 카운팅 값을 비교할 수 있다. 예를 들어, 첫 번째 메탈 라인의 메탈 라인 커패시터(CML)는 원래 설계 당시 의도되었던 커패시턴스 값을 갖지 않을 수 있다. 이 경우, 오실레이터에 의해 생성되는 펄스들의 주파수는 원래 의도되었던 값을 갖지 않으므로, 정확한 합연산의 결과가 반영되지 않는다. 그러므로, 비교기(360)는 비교 결과에 기초하여 바이어스 생성기(390)를 제어하기 위한 제어 신호(CS)를 생성한다.
바이어스 생성기(390)는 복수의 시냅스 회로들(11~n8) 각각이 일정한 레벨의 전류를 생성하도록 보조할 수 있다. 예를 들어, 바이어스 생성기(390)는, 바이어스 생성기(390)에 의해 생성된 전류가 복수의 시냅스 회로들(11~n8) 각각이 생성하는 전류에 반영되도록 하는 커런트 미러로써 구현될 수 있다.
바이어스 생성기(390)에 의해 생성된 기준 전류가 각각의 시냅스 회로가 생성하는 전류에 반영됨으로써, 메탈 라인 커패시터(CML)로 제공되는 전류의 양도 적절히 가변할 수 있다. 따라서, 가변하는 전류의 크기에 따라 오실레이터(340)의 주파수는 가변하므로, 뉴로모픽 연산 회로를 설계할 당시 원래 의도되었던 주파수의 카운팅 횟수가 획득될 수 있다.
도 10은 도 9에 도시된 뉴로모픽 연산 회로의 일부 구성들을 예시적으로 보여주는 블록도이다. 도 9에는 제 1 메탈 라인(ML1) 에 연결되는 시냅스 회로(11), 오실레이터(341), 및 바이어스 생성기(390)가 도시되었다. 제 1 메탈 라인 커패시터(CML1)는 제 1 메탈 라인(ML1)이 포함하는 자체적인 커패시턴스 성분을 나타낸다. 설명의 이해를 돕기 위해 도 9를 함께 참조하여 설명하기로 한다.
바이어스 생성기(390)는 시냅스 회로(11)로부터 출력되는 전류(I1)의 레벨을 조절하도록 구성될 수 있다. 예를 들어, 제어 신호(CS)에 의해 바이어스 생성기(390)가 제어됨으로써, 전류(I1)의 크기가 증가하거나 감소할 수 있다. 예를 들어, 바이어스 생성기(390)는 바이어스 생성기(390) 내부에서 생성된 전류의 크기에 따라 전류(I1)의 크기가 변하도록 구성된 커런트 미러(current mirror)로 구현될 수 있다.
바이어스 생성기(390)가 커런트 미러로써 구현되는 경우, 바이어스 생성기(390)는 전원 전압(VDD)을 공급받는 복수의 트랜지스터들(T0~Tn), 제어 신호(CS)에 의해 스위칭-온 또는 스위칭-오프 되는 복수의 보조 스위치들(SSW1~SSW), 및 기준 전압 생성기(392)를 포함할 수 있다. 복수의 트랜지스터들(T0~Tn)의 게이트 전극들은, 기준 전압 생성기(392)에 의해 생성되는 기준 전압이 출력되는 단자 및 전류원(CS1)을 구성하는 PMOS 트랜지스터의 게이트 전극과 공통으로 연결될 수 있다. 복수의 트랜지스터들(T1~Tn) 각각은 서로 같은 크기의 전류들이 출력되도록 같은 크기를 가질 수 있다. 또는, 복수의 트랜지스터들(T1~Tn) 각각은 출력되는 전류들의 크기가 지수적으로 증가하도록 서로 다른 크기를 가질 수 있다.
기준 전압 생성기(392)는 일정한 크기의 바이어스 전압을 생성하도록 구성될 수 있다. 예를 들어, 기준 전압 생성기(392)는 반도체 제조 공정에서의 편차에 영향을 받지 않도록, 밴드 갭 레퍼런스 회로(band gap reference circuit)로 구성될 수 있다. 예를 들어, 기준 전압 생성기(392)에 의해 생성된 전압(혹은 전류)에 의해 전류원(CS1)을 구성하는 PMOS 트랜지스터가 턴-온 되므로, 기준 전류(Iref)의 크기가 제어된다면, 전류원(CS1)을 구성하는 PMOS 트랜지스터로부터 출력되는 전류(I1)의 크기도 제어될 수 있다.
시냅스 회로(11)로부터 출력되는 전류(I1)의 크기를 변화시키는 바이어스 생성기(390)를 제공함으로써, 오실레이터(341)에 의해 생성되는 펄스들의 주파수를 원하는 주파수로 설정할 수 있다. 오실레이터(341)의 예시적인 구성 및 동작은 도 4 및 도 7에 도시된 오실레이터들(141, 241)과 동일하거나 유사하므로, 상세한 설명은 생략하기로 한다. 결과적으로, 카운터(예컨대, 도 9의 351)에 의한 원하는 카운팅 값을 획득할 수 있다.
도 11은 본 발명의 실시 예에 따른, 오실레이터의 주파수 편차를 보정하는 방법을 보여주는 순서도이다. 설명의 이해를 돕기 위해 도 9 내지 도 10을 함께 참조하여 설명하기로 한다.
S310 단계에서, 모든 피승수들 및 모든 승수들에 대해 최대값이 입력될 수 있다. 예를 들어, 피승수는 시냅스 회로들(11~n8)로 입력되는 PWM 신호들(PWM1~PWMn)일 수 있으며, 승수는 시냅스 회로들(11~n8)로 입력되는 (또는 시냅스 회로들에 저장된) 가중치들일 수 있다. 다만, 예시적으로, 카운터에 의한 카운팅을 용이하게 하기 위해 모든 피승수들 및 모든 승수들에 대해 최대값이 입력되는 것으로 설명되었으나, 이에 한정되지 않는다.
S320 단계에서, 기준 구간 동안 출력되는 카운팅 값과 타깃 값이 비교될 수 있다. 예를 들어, 타깃 값은 뉴로모픽 시냅스 회를 설계할 당시 원래 의도되었던, 메탈 라인의 커패시턴스 값일 수 있다.
S330 단계에서, 카운팅 값과 타깃 값의 비교 결과에 기초하여, 카운팅 값과 타깃 값을 일치시키는 전류(Iref)의 크기가 설정될 수 있다. 예를 들어, 도 10의 보조 스위치들(SSW1~SSWn) 중 적어도 일부가 적절히 스위칭-온 됨으로써, 전류원(SC1)을 구성하는 PMOS 트랜지스터로부터 출력되는 전류의 크기가 제어될 수 있다. 그 결과, 뉴로모픽 시냅스 회로를 설계할 당시 원래 의도되었던 타깃 주파수를 갖는 펄스들이 오실레이터(341)로부터 출력될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
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: 바이어스 생성기
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: 바이어스 생성기
Claims (18)
- PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로;
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 메탈라인 커패시터의 커패시턴스 값을 조절하도록 구성되는 커패시턴스 칼리브레이터를 포함하는 뉴로모픽 연산 장치. - 제 1 항에 있어서,
상기 커패시턴스 칼리브레이터는:
서로 병렬로 연결되는 복수의 커패시터들; 그리고
상기 복수의 커패시터들 각각에 대응하는 복수의 스위치들을 포함하는 뉴로모픽 연산 장치. - 제 2 항에 있어서,
상기 메탈 라인 커패시터의 커패턴스 값이 타깃 값이 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치. - 제 3 항에 있어서,
상기 복수의 커패시터들은 지수적으로 증가하는 커패시턴스 값들을 갖는 뉴로모픽 연산 장치. - 제 1 항에 있어서,
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치. - 제 1 항에 있어서,
상기 시냅스 회로는:
상기 전류를 생성하는 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력하는 뉴로모픽 연산 장치. - 제 1 항에 있어서,
상기 메탈라인 커패시터는 상기 메탈라인이 자체적으로 보유하는 커패시턴스에 대응하는 뉴로모픽 연산 장치. - PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로;
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 보조 전류원을 포함하는 뉴로모픽 연산 장치. - 제 8 항에 있어서,
상기 보조 전류원은:
서로 병렬로 연결되는 복수의 전류원들; 그리고
상기 복수의 전류원들 각각에 대응하는 복수의 스위치들을 포함하는 뉴로모픽 연산 장치. - 제 9 항에 있어서,
상기 시냅스 회로는:
주 전류를 생성하는 주 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 복수의 전류원들 중 적어도 일부와 상기 전류를 출력하는 뉴로모픽 연산 장치. - 제 9 항에 있어서,
상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치. - 제 9 항에 있어서,
상기 복수의 전류원들은 지수적으로 증가하는 전류 값들을 갖는 뉴로모픽 연산 장치. - 제 8 항에 있어서,
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치. - PWM 신호와 가중치에 대해 곱연산을 수행하여 전류를 생성하도록 구성되는 시냅스 회로;
상기 전류에 대응하는 전하가 저장되는 메탈라인 커패시터를 포함하는 메탈 라인;
상기 메탈 라인 커패시터에 저장되는 전하에 기초하여 복수의 펄스들을 생성하도록 구성되는 오실레이터; 그리고
상기 복수의 펄스들의 주파수와 타깃 주파수의 비교 결과에 기초하여, 상기 전류의 크기를 조절하도록 구성되는 바이어스 생성기를 포함하는 뉴로모픽 연산 장치. - 제 14 항에 있어서,
상기 바이어스 생성기는:
전원 전압을 제공받는 복수의 트랜지스터들;
상기 복수의 전류원들 중 적어도 일부의 각각에 대응하는 복수의 스위치들; 그리고
기준 전압 생성기를 포함하되,
상기 복수의 트랜지스터들의 게이트 전극들은, 상기 기준 전압 생성기에 의해 생성되는 기준 전압이 출력되는 단자와 공통으로 연결되는 뉴로모픽 연산 장치. - 제 15 항에 있어서,
상기 시냅스 회로는:
게이트 전극이 상기 복수의 트랜지스터들의 상기 게이트 전극들에 연결되는 트랜지스터를 포함하는 전류원; 그리고
상기 PWM 신호와 상기 가중치에 대해 AND 연산을 수행하는 AND 게이트를 포함하되,
상기 시냅스 회로는, 상기 AND 게이트의 출력에 기초하여, 상기 전류를 출력하는 뉴로모픽 연산 장치. - 제 15 항에 있어서,
상기 복수의 펄스들의 상기 주파수가 타깃 주파수가 되도록, 상기 복수의 스위치들 중 적어도 일부가 스위칭-온 되는 뉴로모픽 연산 장치. - 제 14 항에 있어서,
입력 신호를 상기 PWM 신호로 변환하는 PWM 컨버터;
상기 복수의 펄스들을 카운팅 하는 카운터;
상기 복수의 펄스들의 주파수와 타깃 주파수를 비교하는 비교기; 그리고
상기 카운터에 의한 카운팅 값을 쉬프팅하는 레벨 쉬프터를 더 포함하는 뉴로모픽 연산 장치.
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 true KR20180088258A (ko) | 2018-08-03 |
KR102313796B1 KR102313796B1 (ko) | 2021-10-20 |
Family
ID=63250313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170113563A KR102313796B1 (ko) | 2017-01-25 | 2017-09-05 | 뉴로모픽 연산 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102313796B1 (ko) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714119A (zh) * | 2018-12-29 | 2019-05-03 | 中国人民解放军陆军工程大学 | 神经形态电路和信号频移检测系统 |
KR20200135148A (ko) * | 2019-05-24 | 2020-12-02 | 한양대학교 에리카산학협력단 | 신경망 훈련이 가능한 시냅스 모방 소자 |
WO2020242121A1 (ko) * | 2019-05-24 | 2020-12-03 | 한양대학교 에리카산학협력단 | 신경망 훈련이 가능한 시냅스 모방 소자 |
WO2022260413A1 (ko) * | 2021-06-07 | 2022-12-15 | 건국대학교 산학협력단 | 펄스폭 기반 전류 영역 인-메모리 신경망 연산기의 천이 오차 교정 장치 및 방법 |
US11586886B2 (en) | 2018-12-24 | 2023-02-21 | Samsung Electronics Co., Ltd. | Neural network apparatus and method with bitwise operation |
KR102514649B1 (ko) * | 2021-11-18 | 2023-03-29 | 서울대학교산학협력단 | 시냅스 특성 변화를 보상하는 뉴런 회로 및 뉴로모픽 장치 |
WO2024158266A1 (ko) * | 2023-01-26 | 2024-08-02 | 서울대학교 산학협력단 | 시냅스 회로와 그 동작 방법 및 시냅스 회로를 포함하는 뉴로모픽 소자 |
Citations (4)
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 |
KR20090107817A (ko) * | 2008-04-10 | 2009-10-14 | 주식회사 하이닉스반도체 | 주변 영역에 입체형 커패시터를 구비하는 반도체 메모리장치 |
US20120011093A1 (en) * | 2010-07-07 | 2012-01-12 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic stdp |
-
2017
- 2017-09-05 KR KR1020170113563A patent/KR102313796B1/ko active IP Right Grant
Patent Citations (5)
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 |
KR20090107817A (ko) * | 2008-04-10 | 2009-10-14 | 주식회사 하이닉스반도체 | 주변 영역에 입체형 커패시터를 구비하는 반도체 메모리장치 |
US20120011093A1 (en) * | 2010-07-07 | 2012-01-12 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic stdp |
KR20130036313A (ko) * | 2010-07-07 | 2013-04-11 | 퀄컴 인코포레이티드 | 이산-레벨 시냅스들 및 확률적 stdp를 이용한 디지털 뉴럴 프로세싱을 위한 방법들 및 시스템들 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586886B2 (en) | 2018-12-24 | 2023-02-21 | Samsung Electronics Co., Ltd. | Neural network apparatus and method with bitwise operation |
CN109714119A (zh) * | 2018-12-29 | 2019-05-03 | 中国人民解放军陆军工程大学 | 神经形态电路和信号频移检测系统 |
CN109714119B (zh) * | 2018-12-29 | 2023-10-24 | 中国人民解放军陆军工程大学 | 神经形态电路和信号频移检测系统 |
KR20200135148A (ko) * | 2019-05-24 | 2020-12-02 | 한양대학교 에리카산학협력단 | 신경망 훈련이 가능한 시냅스 모방 소자 |
WO2020242121A1 (ko) * | 2019-05-24 | 2020-12-03 | 한양대학교 에리카산학협력단 | 신경망 훈련이 가능한 시냅스 모방 소자 |
WO2022260413A1 (ko) * | 2021-06-07 | 2022-12-15 | 건국대학교 산학협력단 | 펄스폭 기반 전류 영역 인-메모리 신경망 연산기의 천이 오차 교정 장치 및 방법 |
KR102514649B1 (ko) * | 2021-11-18 | 2023-03-29 | 서울대학교산학협력단 | 시냅스 특성 변화를 보상하는 뉴런 회로 및 뉴로모픽 장치 |
WO2024158266A1 (ko) * | 2023-01-26 | 2024-08-02 | 서울대학교 산학협력단 | 시냅스 회로와 그 동작 방법 및 시냅스 회로를 포함하는 뉴로모픽 소자 |
Also Published As
Publication number | Publication date |
---|---|
KR102313796B1 (ko) | 2021-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102313796B1 (ko) | 뉴로모픽 연산 장치 | |
US10803383B2 (en) | Neuromorphic arithmetic device | |
KR102314300B1 (ko) | 뉴로모픽 연산 장치 | |
KR102679656B1 (ko) | 믹싱-신호 컴퓨팅을 위한 시스템 및 방법들 | |
US10438116B2 (en) | Neuromorphic arithmetic device | |
US11194886B2 (en) | Bit-ordered binary-weighted multiplier-accumulator | |
US10255205B1 (en) | System and methods for mixed-signal computing | |
US20190188241A1 (en) | Systems and methods for mapping matrix calculations to a matrix multiply accelerator | |
EP3580699B1 (en) | Systems and methods for mixed-signal computing | |
US11157810B2 (en) | Resistive processing unit architecture with separate weight update and inference circuitry | |
KR20190106185A (ko) | 전치 가능한 메모리와 가상 순람표를 이용한 뉴로모픽 시스템 | |
US12099569B2 (en) | Adaptive settling time control for binary-weighted charge redistribution circuits | |
US11526763B2 (en) | Neuromorphic system for performing supervised learning using error backpropagation | |
KR20190007143A (ko) | 뉴로모픽 연산 장치 | |
CN108702131B (zh) | 使用温度计码和二进制码进行线性和单调调谐的rc振荡器 | |
US11321050B1 (en) | Method and system for analog computing with sub-binary radix weight representation | |
US20230385620A1 (en) | Spike neural network circuit | |
US20230244919A1 (en) | Reservoir computing apparatus and data processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |